Задать вопрос
RusMikle
@RusMikle
Программист

Где посмотреть сколько слов начинающихся на конкретную букву в каком языке

Другими словами нужно раскидать слова по табличкам в зависимости от первой буквы (дабы уменьшить размер) и нужно определиться для каких букв нужна отдельная табличка а какие можно в общую слить (т.к. их мало).

Спасибо.
  • Вопрос задан
  • 4197 просмотров
Подписаться 4 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 8
@EvilX
Как вариант:
cat big_dict_en.txt | while read s; do for a in $s; do echo $a;done;done | uniq | grep "^a" | wc -l
Ответ написан
Комментировать
RusMikle
@RusMikle Автор вопроса
Программист
Первое: очень большой объем текстов. Второе: Там в базе поиск наподобии как у гугла бубет организован, у каждого слова своё смещение в статье и дальше поист по словам и нахождение тех где смешение между словами минимальное итп (критериев много) и не только морфологических. Ввибу большого объема эти таблички предполагается хранить на различных серверах и поиск будет происходить параллельно. Вообщем много чего (почти свой гугл, смех).
Что касается вопроса то можно конечно просто посмотреть сколько страниц приходится в словате на какую букву, но у меня нет всех нужных словарей.
Ответ написан
Комментировать
RusMikle
@RusMikle Автор вопроса
Программист
Да, ещё, хотелось бы где то базу синонимов по языкам посмотреть дабы прикрутить ко всему этому.

Отдать всё на откуп гуглу, к сожалению, не могу т.к. информация в которой будет осуществляться поиск не публичная.
А те поисковые движки что видел не оптимированы для распределения нагрузки и базы по множеству серверов.
(может кто подскажет, тогда ненадо велосипед изобретать).
Ответ написан
RusMikle
@RusMikle Автор вопроса
Программист
боючь не получится, там ещё есть требования по интеграции в существующие системы, тут прощё своё написать чем Sphinx доработать. Я на него уже тоже поглядывал.
Ответ написан
Комментировать
RusMikle
@RusMikle Автор вопроса
Программист
купил книжку по нему тут вечером ещё почитаю. Может действительно попробовать.
Ответ написан
Комментировать
briskly
@briskly
Единое решение для всех языков вы наверно не найдете. А так, мне кажется, вам стоит посмотреть национальные корпусы интересующих вас языков, там как правило очень много статистики, и при чем не завязанной на сленг, как google. Образцовым является Британский( www.natcorp.ox.ac.uk/), для других языков тоже тоже ) В крайнем случае скачайте sample и посчитайте частоту сами, я думаю не сильно ошибетесь.
Ответ написан
Комментировать
RusMikle
@RusMikle Автор вопроса
Программист
Спасибо, только из библиотеки вернулся, тупо обложился словарями и посчитал число страниц занимаемое каждой буквой.
Ответ написан
Комментировать
rin
@rin
1. В словаре обычно не все слова. Словоформ нету. Поэтому может получиться не совсем то что надо.
2. Не нужно знать точное количество. Достаточно просто знать соотношение. Для этого можно для каждого языка взять не очень большое количество документов (например из Википедии) и посчитать распределение в этих документах.
3. На самом деле можно этого всего избежать, если разделять не по первой букве, а посчитать хеш от слова и взять остаток от деления на желаемое число таблиц.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы