質問

「レキシカルエンコーディング」という用語を使用しています。より良いものがないので。

言葉は、おそらく手紙とは対照的に、コミュニケーションの基本単位です。 Unicodeは、既知のすべてのアルファベットの各レターに数値を割り当てようとします。ある言語への手紙とは、別の言語へのグリフです。 Unicode 5.1は現在、これらのグリフに100,000を超える値を割り当てています。現代英語で使用されている約180,000語のうち、約2,000語の語彙があれば、一般的な言葉で会話できるはずです。 「字句エンコーディング」各レターではなく各ワードをエンコードし、センテンス内にカプセル化します。

// An simplified example of a "Lexical Encoding"
String sentence = "How are you today?";
int[] sentence = { 93, 22, 14, 330, QUERY };

この例では、文字列内の各トークンは整数としてエンコードされました。ここでのエンコーディングスキームは、単語の使用法の一般的な統計ランキングに基づいてint値を割り当て、疑問符に定数を割り当てました。

最後に、Wordにはスペルチェックと&しかし意味。すべての「字句エンコーディング」文全体の意味と意図を保持し、言語固有ではありません。英語の文は、" ...言語中立的な意味の原子要素..."にエンコードされます。 構造化された構文形式と文法構造を持つ任意の言語に再構成できます。

「字句エンコーディング」の他の例は何ですか?テクニック?


単語の使用統計がどこから来るのかに興味がある場合:
http://www.wordcount.org

役に立ちましたか?

解決

彼らはこの考えにいくつかの大きな問題があります。ほとんどの言語では、単語の意味、および意味に関連付けられた単語は非常に迅速に変化します。

単語の意味が変わる前に、すぐに単語に番号が割り当てられます。たとえば、「ゲイ」という言葉は「幸せ」を意味するためにのみ使用されます;または「陽気な」が、現在は主に同性愛を意味するために使用されています。別の例は、「ありがとう」という形態素です。もともとはドイツの「ダンケ」から来ました。これは一言です。さらに別の例は「さようなら」です。 「神のご加護」の短縮版です。

別の問題は、ある時点で単語のスナップショットを撮ったとしても、同じ州内であってもその単語の意味と用法が競合することです。辞書が書かれているとき、学者が単一の単語について議論することは珍しくありません。

要するに、既存の言語ではできません。目的のために独自の言語の発明を検討するか、InterlinguaやEsperantoなどの既に開発されたかなり静的な言語の使用を検討する必要があります。ただし、これらであっても、常に標準的な用語集で静的な形態素を定義する目的には完全ではありません。

中国語でも、文字と意味の大まかなマッピングがありますが、まだ機能しません。多くの文字は、両方のコンテキスト、およびそれらの文字の前後に応じて意味が変わります。

言語間で翻訳しようとすると、問題は最悪です。英語には1つの単語があり、さまざまな場合に使用できますが、別の言語で直接使用することはできません。この例は「無料」です。スペイン語では、「libre」 「無料」の意味スピーチ、または「無償」のように「無料」の意味ビールのように使用できます(そして、「無料」の代わりに間違った単語を使用すると、とてもおかしく見えます)。

韓国語で美しい単語など、意味を付けるのがさらに難しい他の単語があります。美しい少女を呼ぶとき、交代の候補がいくつかあるでしょう。しかし、食べ物を美しいと呼ぶ場合、食べ物が格好良いという意味でない限り、完全に異なるいくつかの他の候補があります。

結局のところ、英語では約20万語しか使用していませんが、同じ単語に多くの異なる意味を割り当てるため、語彙は実際にはいくつかの面で大きくなっています。同じ問題は、エスペラント語とインターリングア、および会話に意味のある他のすべての言語にも当てはまります。人間のスピーチは、明確に定義され、油を塗られた機械ではありません。そのため、各「単語」が独自の意味があれば、それは非常に困難であり、現在の技術を使用するマシンが人間の言語から特別な標準化されたレキシコンに翻訳することはほとんど不可能です。

これが、機械翻訳がいまだにひどい理由であり、今後もずっと続くでしょう。もっと良くできるなら(できればいいのですが)、何らかの奨学金や大学/政府の資金でPHDに向けて取り組むことを検討すべきでしょう。または単にお金の山を作って、あなたの船を蒸し続けるものは何でも。

他のヒント

この質問はプログラミングよりも言語学に影響を及ぼしますが、高度に合成された言語(複数の形態素を組み合わせた単語を含む)の場合、「数」を試みるのは非常に複雑な問題になる可能性があります。少なくともある程度分離されている英語のような言語、または高度に分析的な中国語のような言語とは対照的に、可能なすべての単語。

つまり、一部の言語では、構成するグリフに基づいて単語を簡単に分類およびカウントできない場合があります。

言語の分離に関するこのウィキペディアの記事は、問題の説明に役立つ場合があります。

自分で作成するのは簡単です。各単語を正規のバイトストリーム(小文字の分解されたUCS32など)に変換し、整数にハッシュダウンします。おそらく32ビットで十分ですが、そうでない場合は64ビットで十分です。

うっとりするような答えを出す前に、Unicodeの目的は各グリフに一意の識別子を割り当てることだけであると考えてください。それらをランク付け、並べ替え、またはグループ化するのではなく、全員が同意する一意の識別子にそれぞれをマッピングするだけです。

システムは、名詞の複数形や動詞の活用をどのように処理しますか?これらはそれぞれ独自の「Unicode」を持っていますか?値?

翻訳スキームとして、これはおそらく多くの作業なしでは機能しません。各単語に番号を割り当て、それを別の言語に機械的に翻訳できると考えたいと思います。現実には、言語には、同じ「風が髪を吹き返した」というスペルの複数の単語の問題があります。対「時計を巻く」。

テキストを送信する場合、おそらく言語ごとにアルファベットを使用しますが、ZIPのように可変長辞書を使用するのとは対照的に、そこに何が得られるのでしょうか。

これは興味深い質問ですが、間違った理由で質問しているのではないかと思います。この「字句的」ユニコードを、文を言語に依存しない意味の原子的要素に分解し、他の具体的な言語で再構成できるものと考えていますか?普遍的な翻訳者を達成するための手段として、おそらく?

たとえば、「字句ユニコード」を使用して英語の文をエンコードおよび保存できるとしても、意味をそのままにして、たとえば中国語で読み、魔法のようにレンダリングすることは期待できません。

ただし、Unicodeへのアナロジーは非常に便利です。

Unicodeは、「ユニバーサル」コードでありながら、問題の文字の発音、意味、または使用法を具体化しないことに注意してください。各コードポイントは、特定の言語の特定のグリフ(または、言語グループが使用するスクリプト)を参照します。グリフの視覚的表現レベル(スタイル、書式設定、フォントの範囲内)で要素です。ラテン文字「A」のUnicodeコードポイントはまさにそれです。ラテン文字「A」です。たとえば、アラビア文字のアリフ(ﺍ)やインド語(デヴナガリ)の文字 'A'(अ)として自動的にレンダリングすることはできません。

Unicodeの類推に従うと、Lexical Unicodeには各言語の各単語(単語形式)のコードポイントがあります。 Unicodeには、特定のスクリプトのコードポイントの範囲があります。レキシカルUnicodeは、各言語のコードの範囲を必要とします。異なる言語の異なる単語は、同じ意味(同義語)を持っている場合でも、異なるコードポイントを持つ必要があります。異なる意味を持つ、または異なる発音(同音異義語)を持つ同じ単語には、異なるコードポイントが必要です。

Unicodeでは、一部の言語(すべてではない)で、同じ文字が単語内の位置に応じて異なる形状を持つ場合-例:ヘブライ語とアラビア語では、グリフの形状は単語の終わりで変化します-それは異なるコードポイントを持ちます。同様に、Lexical Unicodeでは、単語が文中の位置に応じて異なる形式を持っている場合、独自のコードポイントを保証する場合があります。

おそらく、英語のコードポイントを作成する最も簡単な方法は、システムを、たとえば特定のエディションのOxford English Dictionaryに基づいて、各単語に一意のコードを順番に割り当てることです。同じ単語の異なる意味ごとに異なるコードを使用する必要があり、異なる形式に異なるコードを使用する必要があります。同じ単語を名詞と動詞として使用できる場合、2つのコードが必要になります

次に、含める他の各言語に対して同じことを行う必要があります-その言語に対して最も信頼できる辞書を使用します。

チャンスは、この運動がすべての努力よりも価値があるということです。 Unicodeがそうであるように、すべての世界の生きている言語に加えて、いくつかの歴史的な死んだ言語といくつかの架空の言語を含めることにした場合、コードはそれに対応するために非常に広くなければならないほど大きいコードスペースになります。圧縮に関しては何も得られません-元の言語で文字列として表される文は、コードとして表される同じ文よりも少ないスペースを占める可能性が高いです。

PS言葉の意味が変わるため、これは不可能な作業であると言っている人にとって、私はそれを問題とは思わない。 Unicodeの類推を使用するために、文字の使用法は変更されました(確かに単語の意味ほど速くはありません)が、中世で 'th'が 'y'のように発音されていたことはUnicodeには関係ありません。 Unicodeには「t」、「h」、「y」のコードポイントがあり、それぞれが目的を果たします。

P.P.S。実際、ユニコードにとっては、「oe」も「œ」でもあるという懸念があります。または、「ss」を「ß」と書くことができますドイツ語で

これは興味深い小さな演習ですが、型とトークンの自然言語の違いの概念の紹介にすぎないことを検討することをお勧めします。

タイプは、すべてのインスタンスを表す単語の単一インスタンスです。トークンは、単語の各インスタンスの単一カウントです。これを次の例で説明しましょう:

"ジョンはパン屋に行きました。彼はパンを買った。"

この例の頻度カウントをいくつか示します。カウントはトークンの数を意味します。

John: 1
went: 1
to: 1
the: 2
store: 1
he: 1
bought: 1
bread: 2

" the"は2回カウントされます。「the」のトークンが2つあります。ただし、10個の単語がありますが、これらの単語と周波数のペアは8個しかありません。単語がタイプに分解され、トークンカウントとペアになります。

タイプとトークンは、統計NLPで役立ちます。 「字句エンコーディング」一方、私は気をつけます。これは、NLPへのはるかに昔ながらのアプローチのセグエであり、事前プログラミングと合理主義がたくさんあります。特定の「アドレス」を実際に割り当てる統計MTについても知りません。言葉に。言葉の間にはあまりにも多くの関係がありますが、1つには、よく考えられた数値オントロジーを構築するには、言葉に数字を投げてそれらを分類するだけであれば、メモリ管理や速度の割り当てなどについて考える必要があります。

NLPとその実用的な使い方のより広範な紹介については、Pythonで記述されたNLTK(Natural Language Toolkit)を確認することをお勧めします。

実際には、半分の適切な語彙に必要なのは約600語だけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top