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

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

30
最もよく使われる言葉は何ですか?
最もよく使われる言葉は何ですか? 文が与えられると、プログラムはそれを通り抜け、各単語の頻度をカウントしてから、最も使用されている単語を出力する必要があります。文には固定長がないため、非常に長くなる可能性があるため、コードはできるだけ短くする必要があります。 ルール/要件 各提出は、完全なプログラムまたは機能である必要があります。関数である場合、プログラムの下部に関数呼び出しを追加するだけで実行可能でなければなりません。他のもの(Cのヘッダーなど)を含める必要があります。 ご使用の言語に対応した無料のインタープリター/コンパイラーが必要です。 可能であれば、プログラムをテストできるサイトへのリンクを提供します。 プログラムはに何も書き込まないでくださいSTDERR。 あなたのプログラムはSTDIN(またはあなたの言語で最も近い代替物)から入力を受け取るべきです。 標準的な抜け穴は禁止されています。 プログラムは大文字と小文字を区別しない必要があります(tHe、Theおよびtheすべてのカウントに寄与するthe)。 最も頻繁な単語がない場合(テストケース#3を参照)、プログラムは何も出力しません。 「単語」の定義: 入力テキストをスペースで分割することにより、単語のリストを取得します。入力には、プレーンスペース以外のタイプの空白が含まれることはありません(特に改行はありません)。ただし、最後の単語には英数字(az、AZ、0-9)、ハイフン(-)、およびアポストロフィ( ')のみを含める必要があります。そのためには、他のすべての文字を削除するか、単語を分割する前にそれらをスペースで置き換えます。ルールの以前のバージョンとの互換性を維持するために、アポストロフィを含める必要はありません。 テストケース The man walked down the road. ==> the ----- Slowly, he ate the pie, savoring each delicious bite. He felt like he was truly happy. ==> he ----- This sentence has no most frequent word. …

4
Golf Me An OOP!
Golf Me An OOP! オブジェクト指向プログラミングの2つの重要なコンポーネントは、継承と構成です。一緒に、シンプルで強力なクラス階層を作成して問題を解決することができます。タスクは、クラス階層に関する一連のステートメントを解析し、階層に関する質問に答えることです。 入力 クラス階層に関する一連のステートメントと質問。ファイルまたは標準入力のいずれか、お使いの言語に最適なものから読み取られます。ファイルオプションを使用する場合、ファイル名はコードの最初の引数(関数引数またはコマンドライン引数のいずれか選択したもの)として渡されます。形式は次のとおりです。 <statement> : <name> is a <name>. | <name> has a <name>. <question> : Is <name> a <name>? | Does <name> have a <name>? <name> : a-z | A-Z | sequence of alphanumerics or underscores, starting with a letter 入力は常にステートメントであり、質問です。すべてのクラス名は大文字の英字(A-Z)で始まり、すべてのメンバー名は小文字の英字(a-z)で始まります。すべての名前は大文字と小文字が区別されます- ABC123と同じクラスではありませんAbc123。 任意の周期的な継承が存在することはありません-場合Bの継承はA、A継承ではないだろうBか、のいずれかBの子。 以下のような文-唯一のクラス名が階層の一部になるfoo is …

12
ロシア語の複数形関数を書く
英語では、名詞は単数形(1つ)か複数形(それ以外)かによって2つの異なる形式をとることができます。たとえば、「1犬」と言いますが、「2犬」、「0犬」、「57犬」などです。 ロシア語には、3つのカテゴリがあります。「1犬、2犬、5犬」の代わりに、ロシア語では「1собака、2собаки、5собак」となります。 カテゴリは、次のロジックに従って分割されます。 「単数形」:1と、1で終わる数字に使用されます。ただし、11で終わる数字は除きます。 例:1собака、21собака、101собака 「少数」:2、3、および4、および2、3、または4で終わる番号に使用されます。ただし、12、13、および14で終わる番号は除きます。 例:2собаки、3собаки、4собаки、32собаки、43собаки、104собаки 「多数」:「特異」または「少数」と見なされないもの。 例:0собак、5собак、11собак、13собак、25собак、111собак、114собак チャレンジ [0、1000]の範囲の整数入力が与えられた1場合、それが「特異」カテゴリ2に属する場合、「少数」カテゴリ5に属する場合、および「多」カテゴリに属する場合を返します。 プログラムは関数であるか、STDINを使用できます。STDOUTに出力するか、関数から値を返すことができます これはコードゴルフの課題であるため、バイト数が最も少ないソリューションが優先されます。

4
感謝していません!…またはそれは?
前書き ストリートトークは、特にプログラマーにとっては理解するのが非常に難しい場合があります。 私たち全員が都市環境で生き残るのを助ける通訳を作成するのはあなたの仕事です。 チャレンジ 入力として英語の文を指定して、文の結果が正か負かを決定するプログラムまたは関数を作成します。 文には否定的な単語が含ま0れ2ます。プログラマなら誰でも知っているように、二重の負は正になります。したがって、コードは、次の規則に従って、true / falsey値を出力または返す必要があります。 No negative words -> truthy One negative word -> falsey Two negative words -> truthy 否定的な単語のリスト: no、not、none で終わるもの n't never、neither、nor nobody、nothing、nowhere エッジケースが1つあります。文がで始まるときはいつでも、No,結果を決定するときにその単語は否定的な単語として扱われません(否定的な単語の数にカウントされるので、もう1つだけあります)。 文は基本的な文法規則(大文字、句読点)に従い、辞書から検索できる単語のみを含みます(幸いなことに、これは質問のタイトルを無効にしません)。この文には固有名詞は含まれません(申し訳ありませんが、Dr。いいえ、あなたは外出しています)。 テストケース 真実: Yes. It's noon. Hello, World! What is this? Ain't no thang! Never say never. No, it's noon …

18
発音並べ替え™
さまざまな派手な並べ替えアルゴリズムを知っていますが、これらのどれも発音しやすい方法で数字を提供しません。これを改善するために、私は発音リストを並べ替える最も自然な方法である発音ソート™の使用を提案します。 発音 (このチャレンジで)数字を発音するための公式ルールは、数字が1つずつ発音され、結果の文字列が辞書式順序でソートされるということです。例として、これは番号845が発音されることを意味し、"eight four five"それに応じてソートする必要があります。 負の数 負の数は、単語の前に付けて発音し"minus"ます。したがって、-23と発音され"minus two three"ます。これにより、4(4)と9(9)で始まる数字の間の負の数が出力の途中で終わることに注意してください。 GuideSoとしての発音並べ順の公式の順序は次のとおりです。 8 五 四 マイナス 九 1 セブン 六 三 二 ゼロ あれは、 8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0 入力 範囲の整数のリストで、最大100個の要素が含まれます。文字列のリストとしての入力は許可されていません。ご使用の言語がリストとしての入力をサポートしていない場合、入力を個別の整数として許可することができます。[ - 999 、999 ][−999、999][-999, 999] 入力には、無効な数字や0で始まる数字(数字0自体を除く)は含まれません。通常、入力はソートされず、任意の順序で指定できます。 出力 同じ整数、発音Sort™順。数字は、ソートを取得するために発音に変換するだけであり、出力には文字列を含めないでください。 例 例では、中間のステップ(括弧で囲まれた)はガイドとしてのみ機能し、出力の一部ではありません。 [1, 2, 3] -> (['one', …

5
代名詞操作
チャレンジ 引数として+記号で区切られた1つ以上の主観的な個人代名詞で構成される文字列を取る関数またはプログラムを記述します。出力は、次の段落で定義された関係の結果である単一の代名詞でなければなりません。 もちろん、確実に存在する文法エラーを修正したいので、自由に編集してください;) これはコードとゴルフのチャレンジなので、最短のコードが優先されます。 関係 このタスクの目標は、私たちが日常的に使用するものを「数学で話す」ものに翻訳することです。「あなたと私」をどう思いますか?さて、「私たち」ですよね?したがって、入力がYou+I出力である場合、文字列である必要がありますWe。3つ以上の代名詞を使用すると、次のようになります。- You+He+They>You 関係は次の表として定義されます。 I You He We You They I I We We We We We You You You We You You He He We You They We We We We You You You They They 「あなた」の問題 さて、ご覧の通り、私はネイティブスピーカーではありません。私の言語(イタリア語)では、複数形you(イタリア語ではvoi)と単数形you(tu)には違いがあります。この挑戦を考えたとき、私は英語で考えていなかったので、複数形と単数形のどちらを使用しているかを認識できないという問題があります。幸いなことに(または明らかに?)、入力/出力は両方の形式で変わらないので、どちらかを使用すれば両方のケースをカバーできます! 入力について 入力は常に「代名詞+代名詞+代名詞」という形式になります...代名詞の最初の文字は大文字で、残りは小文字になります。プラス記号はスペースで囲まれず、代名詞のみで囲まれます。空の入力が可能であり、結果は空の出力でなければなりません。 ボーナス プログラムが2つの新しい代名詞:SheとItを管理する場合、15%の小さなボーナス。彼らは明らかに彼と同じです。この関係は再帰的であるため、彼女->彼女とそれ->それ。したがって、She、He、またはItのみを含む組み合わせは、それらを出力する必要があります。 例 You+I -> …

9
3 x 3の頑丈な正方形をすべて印刷する
(に似頑丈角魔方陣は)Nの整数1の配置である2毎に2×2のサブグリッドが同じ和を有するようにN Nによってグリッドに。 たとえば、N = 3の場合、1つの頑丈な正方形は 1 5 3 9 8 7 4 2 6 なぜなら、2 x 2の4つのサブグリッド 1 5 9 8 5 3 8 7 9 8 4 2 8 7 2 6 すべて同じ額になります23: 23 = 1 + 5 + 9 + 8 = 5 + 3 + 8 + …
24 code-golf  number  arithmetic  number-theory  grid  code-golf  binary  code-golf  popularity-contest  code-golf  chemistry  code-golf  code-golf  date  code-golf  quine  chess  code-golf  hexadecimal  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  math  date  code-golf  typography  code-golf  string  code-golf  string  code-golf  code-golf  math  arithmetic  array-manipulation  grid  code-golf  puzzle-solver  code-golf  music  audio  code-golf  decision-problem  code-golf  geometry  code-golf  number  bitwise  code-golf  string  metagolf  hexagonal-grid  code-golf  string  code-golf  sorting  popularity-contest  code-golf  game  sequence  base-conversion  binary  code-golf  decision-problem  graph-theory  natural-language  code-golf  math  parsing  optimized-output  code-golf  array-manipulation  code-golf  graphical-output  image-processing  tiling  code-golf  graph-theory  path-finding  chess  code-golf  code-golf  balanced-string  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  statistics  code-golf  chemistry 

5
リートから英語への翻訳
あなたの課題は、(英語の)leetspeak / lolspeak / txtspkを通常の英語に翻訳するプログラムを書くことです。ご使用の言語がこれらをサポートしていない場合を除き、プログラムは標準入出力から標準出力に読み込む必要があります。 新しい行で区切られた英語の単語のリストを含むファイルを使用できます。呼び出す必要がWあり、プログラムと同じディレクトリに配置されます。(GNU / Linuxシステムおよびおそらく他のシステムではW、リンクを作成できます/usr/share/dict/words)リストはすべて小文字である必要はなく、単語を大文字にするかどうかを判断するために使用できます。 これは、Nikos M.によって投稿された、現在削除されている質問に基づいています。この元の質問は閉じられており、回答を受け取らなかったため、これは重複ではありません。これは、勝者の基準がなく、ユーザーがそれを入力したくないためです。 得点 得点は少し複雑です! あなたのスコアは (leet items + bonuses) * 10 / (code length) 最高スコアが勝ちます。 あなたのプログラムは必ずしもそうである必要はなく、おそらく完璧ではありませんが、それが正確であるほど、より多くのボーナスが得られます! 以来$、両方を意味することができますsとS、あなたはそれが大文字(文章の開始時、すなわち大文字)を持つべきであるかどうかを決定するためのすご腕の項目ごとに5ポイントのボーナスを得ます。 適切な名詞(常に大文字の単語)を実装すると、リートアイテムごとに5ポイントのボーナスが追加されます-これが機能する方法は、単語リストに目を通し、リスト、両方のバージョンが存在する場合は、単に推測します。 文字に2つの意味がある場合(例:または1を意味できる)、リートアイテムごとに20ポイントを獲得します。実際の英語の単語を作成するアイテムの翻訳のみを選択すると、ワードリストを使用できます。リートアイテムの複数の翻訳が実際の英語の単語を作成する場合、有効な翻訳の1つを任意に選択しても、ボーナスを受け取ることができます。LI リートのリスト これらは、実装できるリートアイテムです。すべてを実装する必要はありませんが、追加するほどポイントが増えます。 アイテムやキャラクターを自分自身に翻訳してポイントを獲得することはできません。この規則は、リストで私が犯したかもしれない間違いを無効にします。 単純なtrまたはを行うのは魅力的s/.../.../gです。本当の課題は、単語リストを使用して、複数の意味のどれが正しいかどうかを判断することです。 リートアイテム(これらはそれぞれleet items式に1を追加します) $-> s、S (-> c、C 5-> s、S @-> a、A 4-> a、A 3-> e、E 7-> t、T +-> t、T #-> …

9
名詞ですか?
入力として文字列を指定し、それが名詞かどうかを判断します。 名詞として正しくラベル付けするかどうかで、最も一般的な1000の英単語でスコアが付けられます。 これらの単語のほとんどを50バイト以下に正しく分類するプログラムまたは関数が勝ちます。 名詞 名詞は、通常、物を表す言葉です。より複雑になりますが、それが基本的な考え方です。 単語が名詞または他の品詞のいずれかである可能性がある場合、それがまれな用法であっても、それを名詞として分類しました。または、実際に、このサイトに私のためにそれをさせました。 あなたが採点される単語は、これらの1000の一般的な単語です。これは単純なWikipediaからのもので、「2」と「1回」が追加されています。それらのうち、これらは586名詞であり、これらは414非名詞です。ここで 3つのリストをすべて見つけることができます。これらの入力はすべて小文字であることに注意してください。これらのリストは最終的なものです-文法を主張しようとしないでください。 名詞である入力で真実の結果を出力し、名詞ではない入力で偽の結果を出力する場合、プログラムは正しいと見なされます。 微妙: プログラムには確定的な出力が必要です。ランダム性を使用する場合は、シードします。プログラムでは、組み込みの名詞リストまたはその他の組み込みの品詞機能を使用できません。 例: a: noun act: noun active: noun about: non-noun above: non-noun across: non-noun あなたの答えにあなたのプログラムの成功率を示してください。最高の成功率で最大50バイトのプログラムまたは機能が優先されます。同点の場合、最低バイト数が勝者を決定します。がんばろう!

5
あとどれくらい?
あとどれくらい? 最近、携帯電話で5分間のタイマーを使ってピザを作っていました。誰かが入って来て、あとどれくらい残っているかと私に尋ねると、最初は質問の答え方についてちょっと混乱しました。現時点でのタイマーが3:47であった場合、「3分47秒」と読み上げた時点で、時間は変更されていたはずです。したがって、タイマーを読み終えた直後にタイマーが到達する時間を見つける必要があります。 これがあなたの挑戦です。このプロセスを自動化することです。適切な形式( ":"で区切られた、または分と2番目の引数として)で時間を指定し、タイマーが取得するのに必要な時間と同じ時間の読み取りにかかる現在の時点から最も早い時間を出力します。に。各音節の読み取りには1秒かかると想定しています。 さらなるルール 「分」と「秒」をそれぞれ2つの音節、およびそれらの間の「および」としてカウントする必要があります。 ピザの調理に59:59以上かかることはありません。 「11分0秒」は10音節ではありません。「11分」(5音節)に簡略化する必要があります。分も同様です。「0分7秒」も4音節としてカウントされます。 プログラムは、任意の形式で出力を提供できます:の配列[minutes, seconds]、または<minutes> minutes and <seconds> seconds(通常のテキスト出力)。 標準の抜け穴が適用されます。 これはcode-golfであるため、バイト単位の最短回答が優先されます。 テストケース すべての入力として (minutes, seconds) (4, 47) = (4, 38) (Four MiNutes And ThirTy Eight SeConds - 9 syllables/seconds) (1, 1) = (0, 56) (FifTy-Six SeConds - 5 syllables/seconds) (59, 57) = (59, 46) (FifTy …

25
私のエスペラントを解析してください!
有名な構築言語エスペラント語はラテンアルファベットを使用します(詳細については、リンクされたウィキペディアのページを参照してください)。ただし、アクセント付きの文字がいくつかあります:ŭ、ŭ、accent、ĵ、ŝ、およびŭ。(C曲折曲、G曲曲曲、H曲曲曲、J曲曲曲、S曲曲曲、およびU字曲。)当然、これらの文字は入力が非常に困難です。この質問でも、Unicodeセレクターで文字を検索する必要がありました。このため、文字「x」を使用する規則が電子使用のために開発されました。たとえば、「cxu」は「ĉu」に使用されます。(注:文字「x」はエスペラントのアルファベットでは通常使用されません。」 しかし、私は言語純粋主義者です!この*空中引用* xナンセンスは私を殺している!これを修正するためのプログラムが必要です。できればできるだけ短くして、できるだけ早く端末に入力できるようにしてください。 チャレンジ あなたの使命は、x-conventionを使用して一連のエスペラントを取り、それを実際のエスペラントに変換することです。 実際には、以下をマップする必要があります。 cx: ĉ gx: ĝ hx: ĥ jx: ĵ sx: ŝ ux: ŭ Cx: Ĉ Gx: Ĝ Hx: Ĥ Jx: Ĵ Sx: Ŝ Ux: Ŭ 他のすべての印刷可能なASCII文字は受け入れられ、変更されません。Unicodeは便利ですが、必須ではありません。 入力および出力は、言語に適した任意の形式にすることができます。がんばろう! テストケース "input" : "output" _____________ "gxi estas varma" : "ĝi estas varma" "Cxu sxi sxatas katojn aux hundojn?" …

7
プログラミングパズル、ゴルフのコード
バックグラウンド イタリア語の定冠詞(英語theに対応)には、l '、il、lo、gli、i、la、leの 7つの異なる形式があります。どちらを使用するかは、3つの変数に依存します。 性別:男性/女性。 数:単数/複数。 後続の単語の頭文字:母音/子音タイプA /子音タイプB 母音は、これらのいずれかである:AEIOU。 子音タイプBは、これらのケースのいずれかである:S-別の子音が続く、Z-、gn-、PN- 、PS-、X-、I-(この母音が続くiは半母音として作用します)。 子音タイプAは、タイプBではない子音です。 表は、上記の3つの変数の12の組み合わせのそれぞれで使用される記事フォームを示しています。l '形式は、単一引用符でスペースなしで次の単語に付加されることに注意してください。 チャレンジ 単語と、性別と番号を示す1つまたは2つの文字列、数字、またはブール値を入力します。(最初の文字は、入力語から取得する必要があります)。 入力ワードは、小文字のASCII文字のシーケンスになります。アクセント付きの母音は、アクセントのない母音に置き換えられます(たとえば、realtàはrealtaとして入力されます)。 性別と数値の入力は、個別の数値、ブール値または文字列、または文字列の組み合わせ数(たとえば、男性の単数の場合は1、女性の単数の場合は2など)にすることができます。 回答で指定されている限り、任意の妥当な形式と区切り記号を使用できます。 出力単語は、物品の適切な形が先行し、必要に応じてスペースまたは単一引用符で、。出力も小文字にする必要があります。末尾または先頭の空白スペースが許可されます。 コードゴルフ、最短の勝利。 テストケース Iは、入力文字を使用して、以下にm、f性別を指定するために、及びs、p(これは単に1つの可能な入力形式である)数について。 Input Output Comment macchina f s la macchina Initial letter is cons. A zio m s lo zio Initial letter is cons. B libri m p i …

15
次のかなを出力する
日本語の仮名文字は、日本語の単一の音に対応します。ん(n)を除き、他のすべての仮名は子音部分と母音部分で構成されます。日本語の仮名には自然な順序があります。これは一種の「アルファベット順」であり、通常は10行5列の表に配置されます。 | a i u e o ----------------------------- * | a i u e o k | ka ki ku ke ko s | sa si su se so t | ta ti tu te to n | na ni nu ne no h | ha hi hu he ho …

4
フランス語で時間を伝える
Bonjour、PPCG!Quelle heure est-il?これはフランス語で何時かということを意味します。まさにそれがまさにこの挑戦の目的です。 フランス語で(少なくとも正式に)時間を伝えることは、英語で時間を伝えることとは少し異なります。Il est(It is)で時間を告げます。その後、あなたは続く時間入れユール(時を)。(フランス語の番号がわからない場合は、http://blogs.transparent.com/french/french-numbers-learn-how-to-count-from-1-to-1000/のリストをご覧ください)。それが1時である場合は、これを回避します。正午にはmidi(ヒュールなし)を使用し、深夜にはminuitを使用します。 分が00でない限り、その後に分数を続けます。ただし、これにはいくつかの例外があります。15分間はet quartと言い、30分間はet demiと言います。30分後の場合は、時間数を1つ増やし、moinsと60-分という単語を追加します。したがって、午後6時40分は最低9月のheures moins vingt(vingt = 20)です。45分はクォートです。 最後に、時刻で終了します。午前中(午前1時から午後12時まで)にdu matinと言います。午後(主観的ですが、午後1時から午後5時と定義します)、de l'apres-midiと言います(技術的には、eの上にアクセントがあるはずですが、ehになります)。そして、夜(午後5時から午前12時)については、「デュソワール」と言います。真夜中と正午(minuitとmidi)には、これらを後で入れないことに注意してください-使用する時間に基づいて時刻が暗黙指定されます。 おそらくすでに確認したように、ここでの課題は、これらのルールを使用して現在の現地時間をフランス語で出力することです。さまざまな時点でのサンプル出力は次のようになります。(カッコ内の時刻は明らかに印刷する必要はありません、それはちょうどそこにあるので、あなたは何時かを知っています): Il est sept heures du matin. (7:00 A.M) Il est deux heures de l'apres-midi. (2:00 P.M) Il est une heure du matin. (1:00 A.M) Il est huit heures du soir. (8:00 P.M) Il …

3
フランス語で男性名詞と女性名詞を100文字以内で区別する
100文字以内の非常に小さなプログラムを作成します。プログラムは、男性と女性のフランス語の名詞を区別する必要があります。出力unは、男性的なものでありune、女性的なものでなければなりません。多くの場合、従うことができる特定の統計ルールがあります(たとえば、「e」で終わる場合は、男性より女性的である可能性が高い)。 入力: フランス語の単語。小文字のアクセントと小文字を含むダッシュとダッシュで構成されます。 入力例: ami 出力: un単語が男性的でありune、単語が女性的である場合。 出力例: un すべての単語を正しくする必要はありません。あなたの目標は、可能な限り正確であることです。 得点:あなたの答えは 100文字以内でなければなりません。以下のようなステートメントprintやconsole.logかではalertないではない、あなたの総バイト数の一部としてカウントされます。このタスクを実行する関数またはメソッドを作成することもできます。その場合f=x=>、関数宣言の一部である最初の数バイト(例:)は合計には含まれません。合計スコアは、不正解の数です。ネクタイはコードサイズによって壊れます。 テストする名詞: un ami un café un chapeau un concert un crayon un garage un garçon un lit un livre un mari un musée un oncle un ordinateur un pantalon un piano un pique-nique un portable un père un …

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