Javaで使用するデータ構造

その文の中のすべての単語の単語頻度とその頻度を別の文、つまり対にするために、Javaでどのようなデータ構造を使用すべきですか。すべてのノードは、それ自身のものと近隣の文の1つの2つの周波数を持たなければならない。これは、文書内のすべての文のペアに対して繰り返さなければなりません。標準的なコサイン類似度を後で見つけるためにそれを使用します。

1
隣接する文章はどういう意味ですか?それは左の文と右の文の意味ですか?それは現在のものよりも1つおきのすべての言葉を意味しますか?
追加された 著者 Apurv,
宿題ですか?
追加された 著者 Nishant,
それは現在のものよりも他のすべてのsenteceを意味します!
追加された 著者 user1080383,

2 答え

これはリンクされたリストの一種です:

public class SentenceOccurencies {
   //Key is the word, Value the count
    public Map occurrencies = new HashMap();
    public SentenceOccurrencies neighbour;
}

アクセサー/ミューテーターなどを自由に追加できます。

1
追加された

転置索引は、情報検索技術にとって最適な記憶域です。だからあなたは、単語から出現する場所、何回何回までの地図を持っています。

したがって、2つの文について:

クイックブラウンキツネは怠惰な犬の上を飛び出しました。 怠惰な犬は狐が飛び跳ねている間に眠った。

になる:

brown -> {1:1}
dog -> {1:1, 2:1}
fox -> {1:1, 2:1}
jumped -> {1:1, 2:1}
lazy -> {1:1, 2:1}
over -> {1:1}
quick -> {1:1}
slept -> {2:1}
the -> {1:2, 2:2}
while -> {2:1}

地図をたどり、必要な情報を抽出するだけです。この構造の良い点は、2つ以上の文を効率的に保存できることです。

0
追加された
私は本当に自分でこれを実装しようとするべきだと思っています。そうでなければ何も学ばなくなります。私は、あなたが何をしているのか、あなたが立ち往生している場合、あなたに開始をするための十分な情報を与えました。
追加された 著者 Robert,
ありがとう!コードやデータ構造について詳しく教えてください。また、これらの2つの文の標準コサイン類似度はどのようにして見つけられますか?
追加された 著者 user1080383,