Истинное определение английского слова? - PullRequest
4 голосов
/ 11 сентября 2010

Каково было бы лучшее определение английского слова?

Какие другие случаи английского слова, кроме просто \w+?Некоторые могут включать \w+-\w+ или \w+'\w+;некоторые могут исключать такие случаи, как \b[0-9]+\b.Но я не видел никакого общего согласия по этим случаям.У нас есть формальное определение такого?Кто-нибудь из вас может уточнить?

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

Ответы [ 6 ]

6 голосов
/ 11 сентября 2010

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

3 голосов
/ 13 сентября 2010

Лучший способ проверить, является ли слово английским, это найти его в словаре. Если это в словаре английских слов, то это английское слово. Возможно, что слово может быть в английском словаре и французском словаре также. Например, «я» является французским и английским словом.

Я уверен, что вы можете найти много загружаемых словарей в Интернете. Вы также можете сделать свой собственный. Например, вы можете загрузить английскую версию Википедии и предположить, что все найденные слова являются английскими. Вы можете или не можете отфильтровать числа.

Регулярное выражение не скажет вам, является ли слово английским. Например, xyvfg соответствует вашему шаблону \ w ', но определенно не является английским словом.

Edit: Теоретически, используя фонологию английского языка, можно было бы определить, может ли фонетическая транскрипция слова произноситься носителем английского языка. Носителям английского языка доступно много слов, которые на самом деле не являются английскими. Это может учитывать слова, которые могут появиться на английском языке в будущем. Однако перевод между фонетической транскрипцией и текстом является довольно сложной проблемой, поскольку может быть много разных вариантов написания одной и той же фонетической транскрипции. Я не знаю, делал ли кто-нибудь что-нибудь подобное. Это может быть интересным теоретическим упражнением. Я не уверен, что это было бы очень полезно в реальном мире НЛП, хотя.

1 голос
/ 18 сентября 2010
1 голос
/ 12 сентября 2010

Давайте будем конкретными и попробуем укрепить почву на примерах.

Is 'word' an English word?  YES

49th?  YES

NYSE?  YES

Résumé?  YES

Haight-Ashbury? YES/NO?

good-looking?  YES/NO?

P&G?  YES/NO?

1023?  YES/NO?

304-392-9999?  YES/NO?

3.14?  YES/NO?
0 голосов
/ 18 сентября 2010

Ваша проблема называется токенизацией слова. Посмотрите здесь:
http://nlp.stanford.edu/IR-book/html/htmledition/tokenization-1.html

Стэнфорд - очень известная лаборатория НЛП. Они производят один из самых эффективных парсеров для английского языка. На странице описаны некоторые распространенные проблемы токенизации, такие как

  • Необычный токен, специфичный для домена: M A S * H, C ++, IP-адрес ...
  • Перенос слов: совместное обучение, Hewlett-Packard
  • Расположение: Сан-Франциско, Лос-Анджелес.
  • Специальный синтаксис ...
    • Реклама на авиабилеты "Сан-Франциско-Лос-Анджелес"
    • пропущенные пробелы и т.д ...

Проект Penn Treebank также предоставляет простой скрипт sed для токенизации слова ", который выполняет достаточно приличную работу на большинстве корпусов" здесь .

0 голосов
/ 11 сентября 2010

Истинное Английский слово будет почти никогда не будет содержать акценты или иностранные символы - поэтому \ w + может захватить больше, чем вы после, хотя в английском языке используется несколько слов что мы позаимствовали у других языков - у большинства из нас, вероятно, нет времени или желания беспокоить их акцентом. Мне было даже лень писать «хотя» полностью там - \ w + '\ w + не поймет этого. В общем, до тех пор, пока ваш \ w + правильно фиксирует ваши слова, я не могу думать ни о какой другой пунктуации сверху - и ', которая может встречаться в середине слова.

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