タグ付けされた質問 「natural-language」

自然言語の人間による処理に関する問題。タスクには、フリーテキストの解釈、スペルや文法の修正、発音の理解などが含まれます。

21
英語のソースコードを外国語に翻訳する[終了]
私は、英語に基づいたコンピューター言語の数が不釣り合いに多いことに気付きました。既存のコンピューター言語を外国語に翻訳することでこれを修正することを提案します! 英語のキーワード/機能を使用するコンピューター言語を選択してください 英語以外の自然な*言語を選択してください 独自のソースコード、または同じキーワード/関数のサブセットを使用して記述された他のプログラムを他の言語に翻訳するプログラムを作成する ソースコードと出力(翻訳されたコード)を投稿する 次のようなもので投稿を開始します。 ベーシック、フランス語 または ベーシック、フランス語-フォンダメンタル あなたがしたくない場合は、言語名を翻訳する必要はありません、それはただの楽しみのためです! 選択した言語ですべてのキーワード/機能を翻訳する必要はありません。ソースコードで実際に使用しているものだけです。たとえば、PHPには数千個あるので、すべてを翻訳する必要はありません!また、コメントを使用する場合は、コメントも翻訳してください。プログラムが終了した後、外国語に適切でない限り、認識可能な英語の単語はないはずです。文字列内の単語も翻訳する必要があります(翻訳されたプログラムは、実行できたとしても、英語のソースコードでは動作しなくなります!)。他の言語を話すプログラマにとって、あなたのプログラムが何らかの意味をなすことを願っています! たとえば、フランス語にif () {} elseif () {} else {}なるかもしれませんsi () {} sinonsi () {} sinon {}!Perl elsifをフランス語に翻訳している場合はn、2番目eを英語でドロップするのと同じ方法で2 番目をドロップする可能性がありますsinosi。フランス語では、他の可能性が高いだろうAUTREが、代替sinon(または他の、そうでない場合は)私にはよりよい感じ! クリエイティブに!コンピューターと自然言語の両方の感触をキャプチャしてみてください!英語のトークンを持たないBrainfuck、CJamなどの言語は使用できません。BASICやCOBOLなどの言語がはるかに適しています。言語が英語の単語である変数名をサポートしていない場合を除き、意味のある変数名を使用して翻訳します。 コンピューター/自然言語の組み合わせごとに1つずつ、複数の回答を投稿できます。ライブラリまたは外部ツールを使用して翻訳を行うことはできません!コードは、翻訳を行う他の何かを呼び出すのではなく、翻訳自体を行う必要があります!これはコードゴルフではありません!プログラムが入力を受け取る場合、それは独自のソースコードのみである必要があり、ディスクから読み取る場合はソースファイルのみである場合があります。 *この課題の目的のために、私はエスペラント語、ロジバン、ヴォラピュク、インターリングアなどを自然言語と見なします。この挑戦のためにあなた自身の言語を発明することはできません! 明示的なクインを防止するルールを追加しました。翻訳するために、キーワード/機能のすべてのサブセットを選択することができます。あなたのプログラムは最低限それ自身を翻訳できる必要があります。つまり、元のソースに単語が含まれている場合、プログラム自体ではなく入力コードに任意の場所をprint追加してprint(42)も正しい結果が得られます。 例えば: function translate() { ... } print(translate()); になるかもしれない fonction traduire() { ... } imprimer(traduire()); 入力が次のように変更された場合 print(42); function translate() …

30
お父さんのジョークは楽しい
私たちは皆、次のような古典的なパパのジョークを知っています: 誰かが自分の自己を説明する文を言います(I'm tiredまたはI'm confused)。 Hi <adjective>, I'm Dad!導入部は同じ形式(にI'm Peter従うのと同じ形式I'm hungry)に従うため、お父さん冗談愛好家が来て返信します。 あなたの仕事は、自己記述子の形式で入力を受け取り、適切な父親ジョーク形式を出力することですが、「お父さん」という言葉を使用する代わりに、プログラミングしているプログラミング言語の名前を使用しますに。 テストケース(Pythonによって解析されていると仮定): I'm amazing Hi amazing, I'm Python! I'm tired Hi tired, I'm Python! I'm hungry Hi hungry, I'm Python! I'm fat Hi fat, I'm Python! ここで、これらのテストケースがGolfscriptによって解析されていると仮定します。 I'm a programmer Hi a programmer, I'm Golfscript! I'm a question-writer Hi a …

4
豚は飛べますか?
仕事 あなたの仕事は、いくつかの文を分析し、ブタが飛ぶことができるそれらの文から結論を出すことができるかどうかを決定する、選択した言語で関数またはプログラムを書くことです。 入力 入力は、STDINから読み取ることができる文字列で、関数の引数として取得するか、ファイルに保存することもできます。入力は、次のEBNFを使用して説明できます。 input = statement , {statement}; statement = (("Pigs are ", attribute) | ("Everything that is ", attribute, "is also ", attribute)), ". "; attribute = [not], ("able to fly" | singleAttribute); singleAttribute = letter, {letter}; letter = "a" | "b" | "c" | "d" | "e" …

6
依田に言えば、これは
挑戦 まあ、それは非常に明確だと思いますよね?引数として文字列を取り、対応するヨーダ語を出力する関数またはプログラムを作成する必要があります。 これはcode-golfなので、最小バイト数が勝ちます。 入力 入力には、改行なしの任意の文字列を使用できます。次のように構成されている場合、文字列を翻訳できます。 件名 +動詞+その他。 どこ件名(I、あなた、彼、彼女、それ、私たち、彼ら)人称代名詞です。2番目の単語が動詞であることを認識する必要はありません。 最初の単語が代名詞でない場合、入力は有効ですが、出力は Too difficult, this sentence is. You have to win this code challenge -> Translatable Luke has to win this code challenge -> Untranslatable 入力は文字aで終了できます。または!ではなく、? さらに、文字列には非アスキー、括弧、コンマ、コロンを含めることができます... 出力 翻訳可能な文の場合、出力は同じ文で、文の最後に主語と動詞があります。 You have to win this code challenge -> To win this code challenge, you …

30
StringgnirtSStringgnirtSStringgnirtS
これは比較的簡単なチャレンジです。 長さNの文字列が与えられると、文字列を前方に、次に後方に、次に前方に、次に後方に...などN回出力します。たとえば、入力が Hello! 出力する必要があります: Hello!!olleHHello!!olleHHello!!olleH オプションで、末尾の改行を1つ出力することもできます。 あなたの提出物は、完全なプログラムまたは機能のいずれかである可能性があり、任意の合理的な形式で入力および出力を行うことができます。たとえば、STDIN / STDOUT、関数の引数と戻り値、ファイルなどからIOを取得できます。入力文字列は空ではなく、印刷可能なASCIIのみを含むと安全に想定できます。新しい文字列を1行で出力する必要があります。したがって、たとえば、最後の例の出力が Hello! !olleH Hello! !olleH Hello! !olleH これは有効な解決策ではありません! 以下に、さらにいくつかのテストケースを示します。 Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 リーダーボード これはコードゴルフの挑戦なので、標準的な抜け穴は禁止され、バイト単位の最短回答が勝ちます!ただし、これは特定の言語で最短の回答を得るための競争でもあります。Javaの答えがperlや他のゴルフ言語の答えに勝る可能性は低いですが、Javaの最短の答えを持つことは依然として非常に印象的です。したがって、このリーダーボードを使用して両方を表示できます すべての言語の中で最も短い回答、および 個々の言語での最短回答。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

30
グッドネスギザゴルフ!
「ギザ番号」は、口語ではティミー番号とも呼ばれ、数字がピラミッドを表す任意の番号です(A134810)。たとえば、「12321」は次のように視覚化できるため、ギザ番号です。 3 2 2 1 1 ただし、ピラミッドの上部に2桁があるため、「123321」のようなものはギザ番号ではありません 33 2 2 1 1 つまり、次のすべての条件が満たされている場合、数字はギザの数字です。 桁数が奇数で、中央の桁が最大です それは回文的(同じ読み取り前方または後方)であり、 数字の前半は厳密に1ずつ増加しています。(それは回文的でなければならないので、これは数字の後半が厳密に1つ減少しなければならないことを意味します) 入力として正の整数を取る完全なプログラムまたは関数を作成し、それがギザ数であるかどうかを判断する必要があります。入力は文字列または数値として取得できます。それは場合であるギザ番号、出力truthy値。それ以外の場合、偽の値。 合計45のギザ数があるので、これらの入力のいずれかが真実の値になるはずです。 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 6789876 123454321 234565432 …

15
Wordsで20に数えます!
次の長さ区切りの単語リストを使用します。 https://github.com/Magic Octopus Urn / wordListsByLength n 有効な例は、1から20までの長さの各リストから1ワードを出力します。 a an and hand hands handle handles abandons abandoned understand outstanding newfoundland understanding characteristic characteristics characterization characterizations characteristically characterologically chemotherapeutically または(配列): ['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', 'characteristics', 'characterization', 'characterizations', 'characteristically', 'characterologically', 'chemotherapeutically'] 代わりに(以外の印刷可能な非アルファベット区切り文字\n): …

26
二乗言葉を作る
チャレンジ あなたの仕事は、与えられた文字列入力を取り、二乗形式で入力を出力するプログラムを作成することです。空の文字列は空の文字列を返す必要があります。 例 入力が与えられた場合: golf プログラムは以下を出力するはずです。 golf o l l o flog 入力: 123 出力: 123 2 2 321 入力: a 出力: a 入力: Hello, world! 出力(との間のスペースに注意してください-w-ギャップは単なる改行ではありません): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

4
あなたはロマナイザー、ベイビー
日本語のローマ字化は、日本語のテキストをラテン文字に変換しています。このチャレンジでは、入力として日本語の文字列が与えられ、それらを正しいASCII文字列に変換することが期待されます。 知っておくべきこと 日本語には、ひらがな(短い単語に使用される曲線のある文字)、カタカナ(他の言語から借用した音や単語に使用される角度のある文字)、および漢字(元々は中国語に由来する密集した文字)の3つの表記体系があります。この課題では、ひらがなだけを心配します。 ひらがなの五十音には46文字あります。各文字は音節を表します。キャラクターは、最初の音(子音)と2番目の音(母音)で構成されています。順序の列はaiueoです。 : あいうえお k: かきくけこ s: さしすせそ t: たちつてと n: なにぬねの h: はひふへほ m: まみむめも y: や ゆ よ r: らりるれろ w: わ を N: ん (この表をコピーして貼り付ける場合、表意文字スペースU + 3000を使用してyとwの間隔を空けていることに注意してください) したがって、たとえば、あとめはの出力を生成する必要がありますatome。最初の文字はa、2番目はto、3番目はmeです。 例外 他の優れた言語と同様に、日本語にはその規則の例外があり、ひらがなの表にはいくつかの例外があります。これらの文字の発音は、表内の位置が意味するものとはわずかに異なります。 し:shi、not si ち:chi、ti nottsu:tsu、not tu ふ:fu、nothu 濁天゛ 「濁」という言葉は「泥だらけのマーク」を意味します:濁点は、音声を(通常)有声音に変換します。たとえば、kaかはか゛に変わりgaます。変更の完全なリスト: k→ g s→ z t→ d h→b …

1
ドイツ語の発音を推測する
前書き 英語とは異なり、ドイツ語は音素表記システムが非常に優れていると考えられています。これは、スペルと発音の対応が近いことを意味します。なじみのない単語を考えても、スペルシステムのために、その単語の発音方法を知っているでしょう。これは、コンピューターでも正しく実行できるはずだということですか? チャレンジ ドイツ語の単語を表す文字列を入力として受け取り、その発音を国際音声文字(IPA)で出力または返すプログラムまたは関数を作成します。 もちろん、ドイツ語や完全なIPAを学ばせるつもりはありません。この1つのWikipediaのセクションでは、あなたが必要とするルール、と私はungolfed C#のコード化されてきたIPAにほぼすべてのドイツ語を提供リファレンス実装を。 このリンクには、400の一般的なドイツ語の単語とそのIPAの発音のリストも提供されています(検証に必要です)。そのリストから例を挙げると、入力がのsolltest場合、正しい出力はˈzɔltəstです。 参照実装は、Wikipediaセクションで言及されていない2つの有用なルールを追加します:単語のストレスが最初の音節(ドイツ語である可能性が非常に高い)にあると想定し、文字「e」がシュワ音/ə/を表すタイミングを決定するために、より良いヒューリスティックを使用します。プレフィックスの特別な処理も実装しますが、思ったほど結果が改善されませんでした。 詳細 有効なエントリと見なされるには、プログラムが次の要件を満たしている必要があります。 IPA出力は、参照語リストの 400語のうち少なくとも300語と完全に一致する必要があります(参照実装は333正しいです) あなたのプログラムは、もっともらしいドイツ語を推測する必要があります。したがって、技術的な要件があります。これは、正規表現に一致し、[a-zA-ZäÄöÖüÜ][a-zäöüß]*少なくとも1つの母音(aeiouyäöü)を持つ入力については、空白以外の出力を生成し、エラーを出力しないことを意味します。 プログラムは決定論的である必要があります(同じ入力に対して常に同じ出力を生成します) それ以外の場合、標準的な抜け穴は禁止されています(特に、オフサイトリソースの取得に関するもの) 許可されているその他のこと: 必要に応じて、出力に先頭と末尾の空白を含める 出力に既存の文字エンコーディングを使用します(Unicode以外がうまく機能することは想像できませんが、可能であればおめでとうございます) 入力は、ユニコード正規化形式NFD、NFCなどのような正規化された形式であると仮定します。たとえば、äは単一の文字またはベース文字+結合文字として書かれていますか? 標準の入出力方法を使用する スコアリングとIPAキャラクター スコアリングはバイト単位です。ドイツ語の文字とIPAの文字はUTF-8で2バイトであることに注意してください。また、IPA文字U + 0327 COMBINING INVERTED BREVE BELOW(̯)はUnicode結合文字であり、2バイトのUTF-8文字そのものです。つまり、ɐ̯のようなものはUTF-8では4バイトとしてカウントされます。好奇心の強い人のために、この記号は母音が音節核を形成しないことを意味します(前のものは代わりに形成します)。 また、一部のフォントでは他のASCII文字のように見えるこれらのIPA文字に注意してください。 参照語リストの作成方法 このセクションは、チャレンジには不要な追加情報です。 単語リストはこのウィクショナリーの単語頻度リストから取得され、大文字と小文字の違いと、英語のウィクショナリーにドイツ語のエントリがない2つの単語(oh&hey)のために繰り返しを削除しました。IPAは、英語とドイツ語の両方のウィクショナリーを見ていた。複数の発音が提供された場合、より正式で標準的なものを選びました。これが明確でない場合は、一般的なルールに最も適合するものを選択しました。 また、文字「r」の発音方法を標準化する必要がありました。この文字がどのように発音されるかは地域に大きく依存しており、ウィクショナリーは選択したものとまったく一貫していませんでした。私はそれが次の傾向があると感じました:「r」は長い母音が続き、母音が続かないとき発音される/ɐ̯/、そうでなければ、それはʁです。したがって、非常に一貫性のある/(f)ɛɐ̯/であるver-およびer-プレフィックスを除き、すべてのルールをそのルールに従うように変更しました。同様に、「eu」を/ɔʏ̯/として標準化しました。

15
ウェールズ語はどのくらいですか?
ウェールズ語を表す文字列を入力として受け取るプログラムまたは関数を作成します(ユーザーが特に指定しない限り、UTF-8)。 以下は、ウェールズ語のすべての単一文字です。 a、b、c、ch、d、dd、e、f、ff、g、ng、h、i、j、l、ll、m、n、o、p、ph、r、rh、s、t、 th、u、w、y ウィキペディアを引用するには、 有向グラフch、dd、ff、ng、ll、ph、rh、thはそれぞれ2つの記号で書かれていますが、それらはすべて単一の文字と見なされます。これは、たとえば、ラネリ(ウェールズ南部の町)は、英語の8文字と比較して、ウェールズ語では6文字しかないと見なされていることを意味します。 これらの文字はウェールズ語にも存在しますが、他の言語から借用した技術用語に限定されています。 k、q、v、x、z 分音記号付きの文字は個別の文字とは見なされませんが、関数はそれらを受け入れてカウントできる必要があります。可能なそのような手紙は次のとおりです: â、ê、î、ô、û、ŷ、ŵ、á、é、í、ó、ú、ý、ẃ、ä、ä、ë、ï、ö、ü、ÿ、ẅ、à、è、ì、ò、 ù、ẁ (これは、これらの文字をエンコードできないため、ASCIIは受け入れ可能な入力エンコードではないことを意味します。) ノート: これはコードゴルフです。 ngが有向グラフではなく、2つの別々の文字であるllongyfarchのような単語を考慮する必要はありません。この単語には9文字ありますが、8文字と数えることができます。(そのような言葉を説明できるなら、それは素晴らしいことですが、この課題の範囲外です。) 入力には空白が含まれないことが保証されています(末尾に改行が1つ(またはより難解なもの)が必要な場合を除き、その場合は提供できます)。確かに内部の空白はありません。 テストケース: ランディドノー、8 ラネリ、6 リル、3 Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch、50(実際には51ですが、50をカウントします) Tŷr、3 Cymru、5 グリンダー、7

18
デンマーク語で100まで数える
デンマークのカウント方法を使用して、0〜100のすべての数字を正しい順序で印刷します。 彼らが数える方法 英語と同様に、0〜20、30、40、100の専用の単語があります。 その代わりと言ってのtwenty-oneとtwenty-two、彼らが言うone and twentyと、two and twenty 50から始まって、彼らはn * 20として10の倍数を言う 50 = half third times twenty = half way to the 3rd multiple of 20 60 = three times twenty 70 = half fourth times twenty 80 = four times twenty 90 = half fifth times twenty したがって、たとえば55はになりますfive and …

18
一年生のカウント運動を自動化する
CodeGolfチャレンジ PWSSHHHH!3000年に極低温研究室で目を覚ます。おそらく配達員のキャリアチップを受け取るために割り当てオフィスに連れて行かれると、プローブはあなたが2000年からであることを検出します。ステレオタイプ、あなたは今日の現代の人間と比較して愚かであると仮定され、学年を繰り返すことを余儀なくされています。 あなたは一年生の教室に入り、教師が課題を与えています。彼女は50までの数字を言うか、書きます。彼女がボードに数字を書く場合(たとえば:25)、その数字までを「1、2、3、...、25」と言わなければなりません。 「。彼女が数字を大声で言ったら(たとえば、「6」)、タブレットで、その数字までの数字を「1、2、3、4、5、6」と書く必要があります。 これは非常に面倒になり、21世紀のまだ機能しているがまだ機能しているプログラミングの知識でプロセスを自動化することにします。 目的: プログラムは入力を受け取る必要があります。この入力は、10進数(1 thru 50)または書き出された数値(one thru fifty)のいずれかです。 •入力が10進数の場合、出力は書き出されたスタイルを使用して、1からその数までカウントする必要があります。(例:32) •入力が書き出された数値である場合、出力は10進数形式を使用して1からその数値までカウントする必要があります。(例32) ルール: 入力と出力は、どのような場合でも選択できます(したがって、必要に応じて大文字のみを受け入れるプログラムを作成できます)。 入力10進数は数値型(intなど)である必要はありません。数値を含む入力文字列(25対 "25")にすることができます。どちらでも構いませんし、プログラムに受け入れたいものを選択できます。(プログラムは両方を受け入れる必要はありません) 書かれたスタイルでは、複合語の間にハイフンは必要ありませんが、必要に応じてできます。 出力値は何らかの形式で区切る必要がありますが、セパレータは問題ありません 1,2,3 1 2 3 etc num2words(python)などのような追加のライブラリを追加することはできません(ただし、システムライブラリは問題ありません) バックストーリーには2000年から来たと書かれていますが、その日付以降に作成された言語を使用できます(笑) これはcode-golfなので、バイトカウントが最も短いプログラムが勝ちます!

10
私がしなければならない数学の問題をいくつ教えてください!
先生はいつも宿題の中で最も複雑な数学の問題を教えてくれます。のような:pg. 546: 17-19, 22, 26, pg. 548: 35-67 odd, 79, 80-86 even。そして、宿題のためにどれくらいの時間を割くかを前もって知りたいのですが、それをすべて把握する必要はありません。それが私のためにプログラムするあなたの仕事の理由です。 仕様書 args、stdioなどとして完了しなければならない問題の詳細を示す文字列を取得します。 それらはコンマで区切られます(おそらくcomma-space区切られます) 数だけの形式で単一の問題が含まれます(例79) フォーム内の範囲17-18(ここでも、オプションのスペースを処理する必要があります) 範囲には両端が含まれます オプションで、範囲の末尾にoddまたはevenを付ける必要があります。 一連の範囲/ページの先頭に、フォームのページ番号が追加されpg. 545:ます。これもオプションのスペースを処理する必要があります。すべてのページで問題を解決する必要があるため、これらは無視しても問題ありません。 テキストは大文字でも小文字でもかまいませんが、両方ではありません。 宿題のためにやらなければならない問題の数を返す、標準出力など。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース pg. 546: 17-19, 22, 26, pg. 548: 35-67 odd, 79, 80-86 even -> 27 pg. 34: 1 -> 1 PG. 565: 2-5,PG.345:7 -> 5 pg. …

22
文字列を爆発させる
任意の文字列を指定して、テキストが各対角線に沿って上下に移動する三角形の形式で印刷します。たとえば、の入力は次"Hello World"を出力する必要があります。 d l r d o l W r d o l o W r d l o l l o W r d e l o l H l o W r d e l o l l o W r d l o l o W r …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.