5

通常、単語のバッグアプローチを使用してテキストから特徴を取得し、単語をカウントして、次のようにtf-idf値などのさまざまな測定値を 計算します。分類に数値特徴として単語を含める方法

しかし、私の問題は異なります。単一の単語から特徴ベクトルを抽出したいと思います。たとえば、ジャガイモとフライドポテトはどちらもジャガイモでできているため、ベクトル空間で互いに接近していることを知りたいと思います。ミルクとクリームも近くにあり、熱くて暖かく、石で固いなどです。

この問題は何と呼ばれていますか?たくさんの文書を見るだけで、単語の類似点や特徴を学ぶことができますか?

英語で実装しないので、データベースは使えません。

4

3 に答える 3

5

うーん、テキストデータの特徴抽出(例:tf-idf)は統計に基づいています。一方、あなたは感覚(意味論)を探しています。したがって、tf-idefのような方法は機能しません。

NLPには、次の3つの基本レベルがあります。

  1. 形態学的分析
  2. 構文分析
  3. セマンティック分析

(数値が大きいほど問題が大きくなります:))。形態論は多数派の言語で知られています。構文分析はより大きな問題です(動詞、ある文の名詞などを扱います)。セマンティック分析は、機械で表現するのが非常に困難で、多くの例外があり、言語固有である意味を扱うため、最も課題があります。

単語間の関係を知りたいと思う限り、これはいわゆる依存関係ツリーバンク(または単にtreebank)を介して行うことができます:http://en.wikipedia.org/wiki/Treebank。これは、単語をノード、関係をアークと見なすことができる文のデータベース/グラフです。チェコ語には優れたツリーバンクがあり、英語にもいくつかありますが、多くの「カバーされていない」言語では、1つを見つけるのが難しい場合があります...

于 2013-02-11T11:52:17.127 に答える
1

user1506145、

これは私が過去に使用した簡単なアイデアです。ウィキペディアの記事のような短いドキュメントを多数収集します。各ドキュメントで単語数を数えます。i番目のドキュメントとj番目の単語については

I =ドキュメントの数、

J =単語数、

x_ij=j番目の単語がi番目のドキュメントに出現する回数。

y_ij = ln(1+ x_ij)。

[U、D、V] = svd(Y)をYの特異値分解とします。したがって、Y = U * D * transpose(V))、UはIxI、Dは対角IxJ、VはJxJです。

(V_1j、V_2j、V_3j、V_4j)をj番目の単語のR^4の特徴ベクトルとして使用できます。

于 2013-02-11T14:24:12.080 に答える
1

以前の回答で単語の埋め込みについて言及されていなかったことに驚いています。単語埋め込みアルゴリズムは、特定のデータセットの各単語の単語ベクトルを生成できます。これらのアルゴリズムは、コンテキストから単語ベクトルを推測できます。たとえば、次の文の文脈を見ると、「賢い」と「賢い」は何らかの形で関連していると言えます。コンテキストはほとんど同じだからです。

He is a clever guy He is a smart guy

これを行うために、共起行列を作成できます。ただし、非効率的です。この目的のために設計された有名な技術はWord2Vecと呼ばれています。以下の論文から学ぶことができます。
https://arxiv.org/pdf/1411.2738.pdf
https://arxiv.org/pdf/1402.3722.pdf

スウェーデン語で使っています。これは、類似した単語を検出するのに非常に効果的であり、完全に監視されていません。

パッケージはgensimとtensorflowで見つけることができます。

于 2017-06-26T10:32:20.207 に答える