Как указать исключение слова для определения основы в Hunspell

Я использую Hunspell для определения слов для экземпляра SOLR. По большей части, кажется, работает хорошо.

Я использую файлы OpenOffice dic/aff.

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

Отличным примером является слово «лыжник», которое происходит от слова «небо» по следующим причинам:

in the .dic file
sky/MDRSGZ

relevant rule in the .aff file
SFX R   y     ier        [^aeiou]y

Есть ли способ указать, что skier и только skier следует оставить в покое?


person Aaron Craig    schedule 27.02.2015    source источник


Ответы (2)


Да, это очень распространенная вещь, просто уберите "R"

sky/MDSGZ

Но затем вы можете добавить еще одну строку «лыжник» и любые другие его версии.

skier/MS

Мне пришлось внести множество изменений в этот файл, и теперь мне очень жаль, что не было лучшего варианта. Например

  • Масло -> приклад
  • Угол -> Кукуруза
  • Пасха -> Восток

А потом еще один, который действительно сбивает с толку,

  • Ветер == Рана

На моем сайте до того, как мы это исправили, если вы искали ветер, как в «энергии ветра», вы получали кучу синяков и кровавых ран. Потому что «завод», как в «Я завожу часы», связан с ветром.

Мы также решили удалить все префиксы RE. потому что такие вещи, как

  • замечательный -> знак
  • удалить -> переместить
  • сбросить -> установить
  • восстановить -> сохранить

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

Я был бы готов начать и / или внести свой вклад в проект git для настоящего словаря стемминга, чтобы заменить этот словарь правописания для всех, кто его использует.

person byoungb    schedule 02.03.2015
comment
В итоге я сделал именно так, как вы предлагаете. +1 за идею проекта git по словарю. Я думаю, мы могли бы начать со стандартного словаря и совместно работать над такими настройками, как вы описали. По крайней мере, таким образом мы не изобретаем велосипед. - person Aaron Craig; 04.03.2015
comment
Точно, хорошо, если я настрою один, я дам вам знать. Вы делаете то же самое, мне нужно быстро изучить лицензирование, но я уверен, что это будет разрешено. - person byoungb; 05.03.2015
comment
Я обсудил это со своей компанией, и мы, безусловно, были бы заинтересованы в том, чтобы провести это мероприятие или внести в него свой вклад. Я также позабочусь о лицензировании, и тот, кто доберется до этого первым, давайте опубликуем здесь ссылку на github, как только репо будет настроено. - person Aaron Craig; 06.03.2015
comment
Звучит здорово, да, я до сих пор не слишком внимательно изучил лицензирование, но я искал лучший словарь и до сих пор не нашел более подходящего для стемминга. - person byoungb; 06.03.2015
comment
Да, у меня тоже зеленый свет. И теперь мы хотим удалить в основном каждый префикс, потому что одобряю ‹› не одобряю, но я не могу просто отбросить префикс, мне нужно будет повторно применить суффиксы, потому что я хочу, чтобы основа (неодобрение, неодобрение) не одобрялось. Так что мне, вероятно, придется написать что-нибудь, чтобы сделать это автоматически. - person byoungb; 10.03.2015
comment
Я создал репозиторий для этого github.com/publitek/stemming_dictionary, но в настоящее время это только оригинал из открытый офис, я скоро применю свои изменения. - person byoungb; 10.03.2015
comment
круто -- я слежу за проектом и внесу свой вклад, насколько это возможно. - person Aaron Craig; 11.03.2015

ты пробовал фрилинг? Это с открытым исходным кодом.

Демонстрационная страница находится здесь: http://nlp.lsi.upc.edu/freeling/demo/demo.php

Когда я выбираю английский язык, я получаю следующий результат:

you wound the clock?

you wind the clock? 
PRP VBD   DT  NN  ?

также лыжник, энергия ветра все получают стебли существительного. Это отличный стеммер и анализатор.

не уверен в лицензировании. страница загрузки: http://devel.cpl.upc.edu/freeling/downloads?order=time&desc=1

person Meric Usta    schedule 28.05.2015