Случайность слова - найдите совпадение термина в наборе n-грамм - PullRequest
1 голос
/ 28 июня 2011

Как бы мне написать класс совместного вхождения в чем-то вроде Java, который берет файл, полный n-грамм, и вычисляет совпадение слова для заданного входного термина.

Существуют ли какие-либо библиотеки или пакеты, которые работают с Lucene (индексы) или чем-то вроде сокращения карты по списку n-грамм в Hadoop ..?

Спасибо.

1 Ответ

2 голосов
/ 24 июля 2011

Хорошо, если предположить, что вы хотите найти совпадение двух разных слов в файле ngrams ....

Вот псевдокод Java:

// Co-occurrence matrix
Hashmap<String,HashMap<String,Integer>> map = new HashMap();

// List of ngrams
ArrayList<ArrayList<String>> ngrams = ..... // assume we've loaded them into here already

// build the matrix
for(ArrayList<String> ngram:ngrams){
  // Calculate word co-occurrence in ngram for all words
  // result is an map strings-> count
  // words in alphabetical order
  Hashmap<String,<ArrayList<String>,Integer> wordCoocurrence = cooccurrence(ngram) // assume we have this

  // then just join this with original
}

// and just query with words in alphabetic order

Делать подсчет как это, вероятно, было бы неплохо со Свинью, но вы, вероятно, знакомы с этим больше, чем я

...