Можно ли программно обнаружить плюрализацию английских слов и получить ли форму единственного числа?

Для предотвращения случайного присвоения я делаю привычку к инвертированию порядка условного выражения:

if ('undefined' !== typeof x) {
5
задан ThinkingStiff 30 June 2012 в 04:57
поделиться

6 ответов

Это действительно зависит от того, что вы подразумеваете под «программно». Часть английского работает по простым для понимания правилам, а часть - нет. В основном это связано с частотой. Для краткого обзора вы можете прочитать «Слова и правила» Пинкера, но сделайте себе одолжение и не принимайте всю генеративную теорию лингвистики полностью близко к сердцу. Здесь гораздо больше эмпиризма, чем та школа мысли, которая действительно способствует поиску.

Многое из английского можно статистически лемматизировать. Кстати, стемминг или лемматизация - это тот термин, который вам нужен. Одним из наиболее эффективных лемматизаторов, которые отрабатывают статистические правила, загруженные с использованием исключений на основе частоты, является Morpha Lemmatizer . Вы можете попробовать это, если у вас есть проект, который требует такого упрощения строк, которые представляют определенные термины на английском языке.

Есть еще более наивные подходы, которые многого достигают в отношении нормализации связанных терминов. Взгляните на Porter Stemmer , который достаточно эффективен для объединения большинства терминов на английском языке.

11
ответ дан 18 December 2019 в 09:51
поделиться

Переход от единственного числа к множественному, английская форма множественного числа на самом деле довольно регулярна по сравнению с некоторыми другими европейскими языками, с которыми я немного знаком. Например, в немецком языке сложная форма множественного числа (например, Land -> Länder). Я думаю, что существует примерно 20-30 исключений, а остальные следуют довольно простому набору правил:

  • -y -> -ies (семья -> семейства)
  • -us -> -i (cactus -> cacti)
  • -s -> -ses (loss -> loss)
  • в противном случае добавляет -s

При этом преобразование множественного числа в единственное становится намного сложнее, потому что обратные случаи неоднозначны. Например:

  • pies: это py или pie?
  • ski: слово «skus» в единственном или множественном числе?
  • меласса: слово «меласса» или «меласса» в единственном или множественном числе?

Так что это можно сделать, но ты »

5
ответ дан 18 December 2019 в 09:51
поделиться

Является ли «оси» множественным числом от «топор» или от «оси»? Даже человек не может сказать без контекста.

3
ответ дан 18 December 2019 в 09:51
поделиться

Вы можете взглянуть на Inflector.net - мой порт класса перегиба Rails.

1
ответ дан 18 December 2019 в 09:51
поделиться

Это невозможно, как уже сказал nickf. Это было бы просто для классов слов, которые вы описали, но как насчет всех слов, которые естественно заканчиваются на s? Мое имя, например, Мариус, не во множественном числе Мариу. Думаю, то же самое и с автобусом. Множественное число слов в английском языке - это односторонняя функция (хеш-функция), и вам обычно нужна остальная часть предложения или абзаца для контекста.

-3
ответ дан 18 December 2019 в 09:51
поделиться

Нет - английский - это не язык, который придерживается многих правил.

Думаю, лучше всего:

  • использовать словарь общеупотребительных слов и их множественного числа (или группы их по правилу множественного числа, например: группируйте слова, в которые вы просто добавляете S, слова, в которые вы добавляете ES, слова, в которые вы отбрасываете Y и добавляете IES ...)
  • переосмыслите свое приложение
0
ответ дан 18 December 2019 в 09:51
поделиться
Другие вопросы по тегам:

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