我正在尝试实现文本文件的矢量化......我创建了一个字典(所有文档中的唯一字)......这是在java中实现此目的的最佳方式?文本文件的矢量化
例如 - 我的词典有以下单词 - {w1,w2,w3,w4} 而且我有两个文档,每个文档都有单词在词汇表中的子集。我需要写一个文本文件的矩阵形式 -
1,3,4,0
0,0,2,1
这里每一行代表一个文档和值表示文档中的每个词的出现。
你能建议我在Java中实现这个最有效的方法吗?
我正在尝试实现文本文件的矢量化......我创建了一个字典(所有文档中的唯一字)......这是在java中实现此目的的最佳方式?文本文件的矢量化
例如 - 我的词典有以下单词 - {w1,w2,w3,w4} 而且我有两个文档,每个文档都有单词在词汇表中的子集。我需要写一个文本文件的矩阵形式 -
1,3,4,0
0,0,2,1
这里每一行代表一个文档和值表示文档中的每个词的出现。
你能建议我在Java中实现这个最有效的方法吗?
尝试使用HashMap将每个单词映射到矢量中该单词的位置。然后可以通过为矢量创建一个int []来构造每一行,遍历所有单词,查找映射中每个单词的位置并增加相应的项目。
HashMap<String, Integer> dict = new ... // Map word to position
for (String[] doc: docs) {
int vector[VECTOR_SIZE] = new ....
for (String word: doc) {
vector[dict.get(word)]++;
}
// Print vector
}
为什么使用一个单独的数组而不是只保留地图中的计数?与索引有一个映射只是多余的,而不是有一个映射到计数。 – jzworkman 2012-03-21 17:50:20
当然,让我们看看你到目前为止,虽然? – Sid 2012-03-21 17:28:56
我已经将字典单词存储在文本文件中...并且我将文本字符串作为参数传递给函数.... public void createVector(String text)throws IOException {String [] x = tweet.split( “”); \t \t为(列W:X){ \t \t \t而(((V = reader.readLine())= NULL)!){...}}}'我有点困惑,怎么算文本字符串中字典中每个单词出现的次数。 – Fox 2012-03-21 17:34:35
你可以维护一个字典,其中的关键是单词,值是一个计数,每次遇到这个单词时,增加计数。 – Sid 2012-03-21 17:36:44