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


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.