Эффективная реализация для выполнения подсчета слов - PullRequest
2 голосов
/ 18 ноября 2011

Я бы хотел попросить у вас совета по поводу моей диссертации.

Я создаю приложение, в котором у меня будет 1000 статей по 200-300 слов, а затем "частота слов".list "- 30 000 слов, каждое из которых оценивается в соответствии с использованием в английской корпорации, например," of "- 20168 раз," the "- 6464684 раза," знакомство "- 15 раз и так далее ...

Теперь я хочу сделать запрос к базе данных со списками слов и хочу, чтобы возвращалась статья, содержащая большинство из этих слов, чаще всего.

E.g.: my list: different, contemporary, persistency.
Article 1 contains contemporary 1x
article 2 contains contemporary 3x
So the returned article would be no 2.

Вопросы

  1. Должен ли я создавать какие-либо отношения между словами и статьями в базе данных.Я имею в виду тысячу статей, каждая из которых 300 слов (ну, не уникально), это был бы довольно большой список.Или индекс будет достаточно?

  2. Mysql против Oracle?С Mysql я бы использовал SOLR для индексации, я знаю, что у oracle есть инструмент для индексации, но больше ничего о нем.

  3. Доступен ли oracle с такой функциональностью бесплатно?А также с ним легко обращаться, потому что я никогда не работал с ним, но если бы установка была легкой, я бы пошел на это.

Большое спасибо!

1 Ответ

3 голосов
/ 18 ноября 2011

Я рекомендую вам использовать Hadoop для выполнения операции WordCount.Это будет масштабируемым позже (вы исследователь!) И эффективным.Более того, создание отношений между словами и статьями в базе данных не выглядит как изящное решение.

Если вы выберете Hadoop, он обеспечит функциональность MapReduce.Это работает следующим образом:

  • делит все входные текстовые файлы между несколькими физическими машинами
  • каждая машина выполняет алгоритм подсчета слов
  • Результаты собираются со всех машин, изатем объединяются для получения окончательного результата.

Вам не нужно беспокоиться о реализации этих функций, вот учебное пособие .

Задание WordCount также можетзапустить локально на одной машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...