Чи є хороша бібліотека для обробки природних мов [закрито]


90

Мені потрібно реалізувати трохи NLP у моєму поточному модулі. Я шукаю якусь хорошу бібліотеку, яка може мені тут допомогти. Я натрапив на "LingPipe", але не міг повністю зрозуміти, як ним користуватися.
По суті, нам потрібно застосувати функцію, за допомогою якої додаток може розшифровувати інструкції клієнта (інструкції з доставки), набрані простою англійською мовою. Наприклад:

  • Забиратимуть завтра о 12:00 опівдні
  • Запит на доставку після 10 червня
  • Будь ласка, не надсилайте до середи
  • Додайте до замовлення ще 10 одиниць XYZ

Відповіді:


78

LingPipe дуже хороший і добре задокументований. Ви також можете поглянути на:

Останній конкретно може зацікавити вас, хоча я не знаю, чи є якісь доступні реалізації Java (і, можливо, це все одно занадто великий пістолет для вашої проблеми :-)

Ідея Пола щодо використання DSL, мабуть, простіша і швидша в реалізації, а також надійніша у використанні для ваших клієнтів. Я теж рекомендую вивчити це спочатку.


1
Я представив свій звіт на основі вкладених даних з цього форуму та інших місць у мережі. Я також запропонував інші варіанти, які ви запропонували, і Biz вирішив утримати це на затримці (Зараз розпочинається R&D, щоб знайти найкращого з можливих кандидатів).
Віні

1
Якщо ви порівнюєте LingPipe та інші, які ви перелічили, якому б ви віддали перевагу? Я задаю це не лише для питання @ Вінні, а для загальних цілей.
kamaci

1
Перевірте MALLET: mallet.cs.umass.edu
Samik R

11

Я думаю, чи ви вирішите використовувати NLP чи ні, може залежати від конкретних вимог до вашої системи. Чи є вимогою прийняття англійської мови у вільній формі чи буде прийнятий лише певний набір інструкцій? Можливо, буде простіше створити мову домену, яка підтримує те, що потрібно передавати вашим користувачам, ніж провести повний семантичний аналіз тексту у довільній формі.

У просторі Java Groovy має певну підтримку для побудови DSL .


Ось декілька рядків із документа вимоги: ".. і користувач повинен мати можливість ввести примітку або спеціальну інструкцію простою англійською мовою. Потім система повинна проаналізувати інструкцію користувача та заповнити відповідні поля (якщо такі є) замовлення правильними значеннями ".
Vini

10
Це досить розмита вимога. Наприклад, чи має примітка бути граматично правильною? Я не впевнений, що сторони, які висунули вимоги, знайомі зі станом НЛП, але проблема, яку вони описали, - це, по суті, розуміння читання або розуміння природної мови, що є однією з проблем, що описуються як "святий Грааль НЛП. Мені сумнівно, що ви знайдете пакет, який може просто "зробити це" за вас - можливо, набагато реалістичніше надати користувачеві інтерфейс, де він може вказати обмежену кількість спеціальних інструкцій.
Пол Морі,

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.