Существительные извлечения из текста (Java)

При использовании JavaScript для открытия всплывающего окна, можно использовать что-то вроде этого:

var newWin = window.open(url);             

if(!newWin || newWin.closed || typeof newWin.closed=='undefined') 
{ 
    //POPUP BLOCKED
}
13
задан Phil 11 December 2009 в 18:11
поделиться

6 ответов

Сначала вам нужно будет токенизировать свой текст. Это может показаться тривиальным (разделение любого пробела может сработать для вас), но формально это сложнее. Затем вам нужно решить, что такое существительное. Содержит ли слово «автостоянка» одно существительное (автостоянка), два существительных (автомобиль, парк) или одно существительное (парк) и одно прилагательное (автомобиль)? Это сложная проблема, но, опять же, вы можете обойтись без нее.

Определяет ли фраза «Я видел xyzzy» существительное, которого нет в словаре? Слово «the», вероятно, идентифицирует xyzzy как существительное.

Где существительные в слове «время летит, как стрела». Сравните с «дрозофилами, как банан» (спасибо Граучо Марксу).

Мы используем теггер Брауна (Java) ( http://en.wikipedia.org/wiki/Brown_Corpus ) в Набор инструментов OpenNLP (opennlp.tools.lang.english.PosTagger; opennlp.tools.postag. POSDictionary на http://opennlp.sourceforge.net/ ), чтобы найти существительные на нормальном английском языке, и я бы рекомендовал начать с этого - он делает большую часть вашего мышления за вас. В противном случае посмотрите любой из POSTagger ( http://en.wikipedia.org/wiki/POS_tagger ) или ( http://www-nlp.stanford.edu/links/statnlp.html#Taggers ).

Компьютерная маркировка части речи типично различать от 50 до 150 отдельных частей речи для Английский, например, NN для единственного числа нарицательные существительные, NNS для множественного общего числа существительные, NP для имен собственных в единственном числе (см. теги POS, используемые в Brown Corpus)

В http://en.wikipedia.org/wiki/Natural_language_processing_toolkits есть очень полный список наборов инструментов НЛП. Я настоятельно рекомендую вам использовать один из них, а не пытаться сопоставить с Wordnet или другими коллекциями.

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

На основе вашего редактирования:

Ошибка говорит о том, что вы должны переопределить токен абстрактного метода, и у вас есть определение токена в вашем анонимном внутреннем классе, но, возможно, подпись вашего токена -override не соответствует сигнатуре абстрактного метода, определенного в TokenHandler?

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

Найдите словарный веб-сайт с API (например, WS, RESTful), который можно использовать для выполнения поисковых запросов.

Результаты должны быть в удобном для использования формате (например, XML, JSON) и, конечно же, должен включать лексическую категорию слова.

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

Проверьте LingPipe . Предположительно, это позволяет выделить именованных объектов из английского текста. Но я должен признаться, что НЛП не является моей областью знаний.

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

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

Я сомневаюсь, что у вас будет 100% точность; в базе данных нет совпадений для всех возможных слов английского языка, но, по крайней мере, это начало.

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

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

0
ответ дан 1 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

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