6

Я ищу для съемки измерений с использованием Stanford CoreNLP. (Если вы можете предложить другой экстрактор, это тоже хорошо).Как можно записывать измерения в Stordford CoreNLP, такие как 5 дюймов, 5 дюймов, 5 дюймов, 5 дюймов

Например, я хочу найти 15кг, 15 кг, 15,0 кг, 15 килограмм, 15 фунтов, 15 фунтов и т.д. Но среди правил добычи CoreNLPs, я дон Для измерения не см.

Конечно, я могу сделать это с чистыми регулярными выражениями, но инструментарий может работать быстрее, и они предлагают возможность вырезать на более высоком уровне, например. для лечения гб и гигабайты вместе, и RAM и памяти как строительные блоки - даже без полного синтаксического разбора - как они строят большие блоки, как 128 ГБ RAM и 8 гигабайт памяти.

Я хочу, чтобы для этого был экстрактор, основанный на правилах, а не на основе машинного обучения), но не вижу его как часть RegexNer или в другом месте. Как мне это сделать?

IBM Named Entity Extraction может это сделать. Регулярные выражения работают эффективно, а не передают текст через каждый. И регулярные выражения объединяются для выражения значимых объектов, например, таких, которые объединяют все единицы измерения в единую концепцию.

ответ

5

Я не думаю, что система на основе правил существует для этой конкретной задачи. Однако с TokensregexNER это не должно быть сложно.Например, отображение типа:

[{ner:NUMBER}]+ /(k|m|g|t)b/ memory? MEMORY 
[{ner:NUMBER}]+ /"|''|in(ches)?/  LENGTH 
... 

Вы можете попробовать использовать ванильный TokensRegex, а также, а затем просто извлечь из соответствующего значения с захвата группы:

(?$group_name [{ner:NUMBER}]+) /(k|m|g|t)b/ memory? 
+0

Похоже, что это специальная функция IBM Named Entity Extraction. Конечно, регулярные выражения возможны в любой системе, но IBM NEE может работать гораздо эффективнее; а также совместно рассматривать связанные концепции. (Например, почтовые коды принимают десятки форм по всему миру, но все являются «почтовыми кодами» для целей концепций более высокого уровня.) –

+0

Это, безусловно, так: IBM имеет гораздо более быстрый механизм для такого соответствия регулярному выражению. Однако приведенные выше примеры относятся к CoreNLP. TokensRegex (входит в CoreNLP), как правило, достаточно быстр для большинства приложений; особенно если либо (1) шаблоны просты (нет совпадений переменной длины), либо (2) их достаточно мало. –

+0

Если вы ищете решение, основанное на основном регулярном выражении, вы также можете посмотреть [JAPE] GATE (https://gate.ac.uk/releases/gate-5.0-build3244-ALL/doc/tao/splitch7). html) среда регулярного выражения. Я не уверен, что это быстрее, чем у нас, но у него больше поддержки GUI. –

2

Вы можете создавать свои собственные данные обучения и соответственно маркировать необходимые измерения.

Например, если у вас есть предложение, как Jack weighs about 50 kgs

Так модель будет классифицировать ваш вклад как:

Джек, ЛИЦО
весит, O
о, O
50, MES
кг, MES

Где MES означает измерения.

Я недавно сделал данные по обучению для Stanford NER tagger по моей индивидуальной проблеме и создал для нее модель.

Я думаю, что для Stanford CoreNLP NER также вы можете сделать то же самое

Это может быть machine learning-based подход, а не rule-based подход

+0

Спасибо, Рохан. Подход, основанный на ML, может быть ценным. Но, очевидно, некоторые правила придадут нам большую ценность. Слишком много регулярных выражений для ad hoc-решения без CoreNLP должно быть простым или эффективным, но я бы хотел, чтобы инструмент Entity Extraction позволял мне связывать эти регулярные выражения таким образом, чтобы сделать его простым и эффективным. –

+0

Похоже, что это специальная функция IBM Named Entity Extraction. Конечно, регулярные выражения возможны в любой системе, но IBM NEE может работать гораздо эффективнее; а также совместно рассматривать связанные концепции. (Например, почтовые коды принимают десятки форм по всему миру, но все являются «почтовыми кодами» для целей концепций более высокого уровня.) –

+0

Ya возможно. Требуется много исследований для этой проблемы. :) –