如何确定每个文档中术语的频率?
|
我正在建立一个倒排索引,但是当我检查数据库时似乎无法获得正确的频率。我到处都读到您应该使用HashMap,但是我不确定这是否是正确的方法。有任何想法吗?
公共类Tokenize {
public static void createIndex() throws Exception{
ArrayList<Dokument> dok = new QueryHandler().getDokuments();
ArrayList<String> queries = new ArrayList<String>();
ArrayList<String> queries2 = new ArrayList<String>();
HashMap<String, Integer> frek = new HashMap<String, Integer>();
for(int d = 0; d < dok.size(); d++){
String token = \"\";
int frekvens = 0;
try{
Dokument document = dok.get(d);
StringTokenizer st = new StringTokenizer(document.dokument());
while (st.hasMoreTokens()) {
token = st.nextToken();
token.replaceAll(\"[\']\", \"\");
token.replaceAll(\"[,]\", \"\");
token.replaceAll(\"[)]\", \"\");
token.replaceAll(\"[(]\", \"\");
token.replaceAll(\"[.]\", \"\");
frekvens ++;
frek.put(token, frekvens);
queries.add(\"INSERT IGNORE INTO termindeks (docID, term) values (\"+document.docID()+\", \'\"+token+\"\')\");
queries2.add(\"INSERT IGNORE INTO invertedindeks (term, docID, termfrekvens) values (\'\"+token+\"\', \"+document.docID()+\", \"+ frekvens+\")\");
}
}
catch (Exception e) {
e.printStackTrace();
System.out.println(token);
}
}
String[] ffs = new String[queries.size()];
ffs = queries.toArray(ffs);
getDB().runQueriesIgnoreException(queries.toArray(ffs));
String[] ffs2 = new String[queries2.size()];
ffs2 = queries2.toArray(ffs2);
getDB().runQueriesIgnoreException(queries2.toArray(ffs2));
}
}
没有找到相关结果
已邀请:
2 个回复
樊熄忙暖
济畦刨
。您必须获取与密钥关联的值,即
编辑 另一种选择是使用ѭ4而不是ѭ5,因为ѭ4是可变的。