5

文を分析して予測を実装しようとしています。次の[かなり退屈な]文を考えてみましょう

Call ABC
Call ABC again
Call DEF

上記の文のデータ構造を次のようにしたいと思います。

Call: (ABC, 2), (again, 1), (DEF, 1)
ABC: (Call, 2), (again, 1)
again: (Call, 1), (ABC, 1)
DEF: (Call, 1)

一般に、Word: (Word_it_appears_with, Frequency), ....

このタイプのデータには固有の冗長性があることに注意してください。明らかに、 の頻度が 2 アンダー である場合、ABCCall頻度Callは 2 アンダーABCです。これを最適化するにはどうすればよいですか?

アイデアは、新しい文が入力されているときにこのデータを使用することです。たとえば、Callが入力されている場合、データから、 が文に存在する可能性が高いと簡単に言えます。ABC最初の提案としてそれを提供し、その後に と を続けDEFます。

これは、予測を実装するための 100 万通りの方法の 1 つであることを認識しており、それを行うための他の方法の提案を楽しみにしています。

ありがとう

4

3 に答える 3

1

双方向グラフを使用している可能性があります。単語をノードとして保存し、エッジを周波数として保存できます。

于 2011-11-11T20:40:00.040 に答える
0

次のデータ構造も使用できます。

Map<String, Map<String, Long>>
于 2011-11-11T20:44:18.463 に答える
0

次の 2 つのオプションのいずれかを検討します。

オプション1:

class Freq {
    String otherWord;
    int freq;
}

Multimap<String, Freq> mymap;

または多分テーブル

Table<String, String, int>

上記の Freq: を考えると、双方向マッピングを実行したい場合があります。

class Freq{
    String thisWord;
    int otherFreq;
    Freq otherWord;
}

これにより、データペアの非常に迅速な更新が可能になります。

于 2011-11-11T20:44:47.760 に答える