Обнаружить имена собственные с WordNet?

Я использую JAWS для доступа к WordNet. Учитывая слово, там какой-либо способ обнаружить, если это - имя собственное? Похоже, что synsets имеют довольно крупные лексические категории.

Для разъяснения нет никакого контекста для слов - они просто представлены индивидуально. Если слово могло бы очевидно использоваться в качестве имени нарицательного, это приемлемо. Таким образом, "метка" прекрасна, потому что, хотя это могло быть чье-то имя, она могла также относиться к точке. Однако "Африка" не.

10
задан Nick Heiner 2 January 2010 в 18:31
поделиться

3 ответа

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

.
1
ответ дан 3 December 2019 в 21:21
поделиться

К сожалению, вы не сможете надежно определить правильную информацию о существительном из синонимов WordNet. То, что вы ищете, это Распознавание существительных . На странице википедии есть ссылки на несколько версий, доступных на Java. Я бы лично порекомендовал Stanford NER или LingPipe.

Обновлено:

Основываясь на добавленном ограничении отсутствия контекста для слов, вы можете использовать заглавные буквы в качестве основного индикатора, а затем дважды проверить WordNet на предмет того, можно ли использовать слово в качестве существительного. Возможно, что-то вроде этого:

String word = "foo";
boolean isProperNoun = false;
if (Character.isUpperCase(word.charAt(0))) {
    WordNetDatabase database = WordNetDatabase.getFileInstance();
    Synset[] synsets = database.getSynsets(word, SynsetType.NOUN);
    isProperNoun = synsets.length > 0;
}

Это устранило бы такие ложные срабатывания:

Если вы построите его...
Как вы хотите...
О Ромео, Ромео...

И все равно поймаете только существительные с заглавными буквами в

Книге Книга из Марка написано...
. Вы слышали Roots или Кто недавно?

но все еще дают ложные срабатывания на

Mark первой инстанции...
Book 'em, Danno.

потому что они могут быть , но без контекста вы не знаете.

Если бы вы хотели стать действительно хитрым, вы могли бы проследить за гипернимом дерева по любому существительному, чтобы увидеть, достигнете ли вы чего-то очевидного, например, "компания" или "страна". Однако, когда я в последний раз работал с WordNet (4 года назад), отношения гиперним/гипонимов были не очень надежными или последовательными, что могло привести к появлению множества ложных срабатываний (и без улучшения ложных срабатываний, о которых я упоминал выше, потому что они полностью зависят от контекста)

.
12
ответ дан 3 December 2019 в 21:21
поделиться

Позвольте мне запустить это прошлое вас. Возможно, вам придется выполнить run через еще несколько книг по английскому языку, чтобы получить представление о том, что нельзя определить часть речи слова вне контекста.

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

Отличить proper существительные от общих еще сложнее. Конечно, можно использовать эвристическое ... существительное, которое не является начальным словом предложения и пишется с большой буквы, но не в ALLCAPS, вероятно, является собственным существительным.

В конце концов, различие состоит в семантике, а не в лексическом анализе. Сомневаюсь, что вы найдете достаточно надежное решение, основанное на поиске слов в WordNet. Я думаю, что вам нужно будет провести грамматический парсинг естественного языка, прежде чем вы сможете надежно извлечь существительные, и тем более обнаружить proper существительные в прозе.

.
2
ответ дан 3 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

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