подсчет слов из текста ... возможно ли использовать три? - PullRequest
3 голосов
/ 25 июля 2011

я знаю, что количество слов Qs задавалось много раз, и MAP, кажется, единодушный выбор для этого.

Но я чувствовал, что MAP может занять много места, если текст огромен, а количество уникальных слов очень велико. Так почему бы не использовать Три? Конечный узел будет хранить частоту каждого слова.

Или это карта является явным победителем по сравнению с три?

Пожалуйста, помогите мне в понимании.

P.S. Это было задано в интервью SDE.

Ответы [ 2 ]

4 голосов
/ 25 июля 2011

С здесь мы можем оценить слова на английском языке до 1М.Из здесь мы получаем формулу использования памяти карты.Теперь мы можем рассчитать, что если ваш текст состоит из всех слов языка, ваша карта займет около (средняя длина слова 6 символов) (32 байта для коротких строк (Windows) + 4 байта int) * 1M + (незначительные издержки) = 36M~ 34 МБ памяти.

Так что я бы сказал, если вы не во встроенной системе, вам не о чем беспокоиться.

3 голосов
/ 25 июля 2011

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

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