如果可能,我寧願不必啓動lingpipe,這讓我想知道在java中是否有任何快速,簡單的方法來從一串文本中提取所有的bigrams和trigrams?最簡單的方法或最簡單的庫來獲取Java中的bigrams和trigrams?
謝謝
如果可能,我寧願不必啓動lingpipe,這讓我想知道在java中是否有任何快速,簡單的方法來從一串文本中提取所有的bigrams和trigrams?最簡單的方法或最簡單的庫來獲取Java中的bigrams和trigrams?
謝謝
總是最簡單的方法是使用現有的庫。你可以看看simmetrics庫。您也可以使用lucene NgramTokenizer。你也可以自己實現這個算法。首先,您必須在文本中找到所有單詞(使用StringTokenizer),並生成您需要的n-grams。
public class NGramIterator implements Iterator<String> {
String[] words;
int pos = 0, n;
public NGramIterator(int n, String str) {
this.n = n;
words = str.split(" ");
}
public boolean hasNext() {
return pos < words.length - n + 1;
}
public String next() {
StringBuilder sb = new StringBuilder();
for (int i = pos; i < pos + n; i++)
sb.append((i > pos ? " " : "") + words[i]);
pos++;
return sb.toString();
}
public void remove() {
throw new UnsupportedOperationException();
}
}
請更多背景。顯示一些輸入和所需的輸出。 – 2010-09-27 21:34:46