2015-11-23 6 views
1

У меня есть специальная лексика с ок. 1M строк в таблице SQL. Каждая строка имеет UID и соответствующую фразу, которая может содержать много слов. Эта таблица редко меняется.Тег, извлекать фразы из свободного текста с помощью пользовательского словаря (python)?

Мне нужен тег, извлечение, фрагмент или распознавание (NER?) Фраз сущностей в документе со свободным текстом против вышеупомянутого пользовательского словаря. Так что для фразы, найденной в свободном тексте, я могу вытащить его UID.

Было бы неплохо, если бы частичные совпадения, а также токены фраз, появляющиеся в другом порядке, были помечены/извлечены в соответствии с некоторыми настройками порога/алгоритма.

  • Какой инструмент NLP, предпочтительно основанный на Python, может использовать пользовательский словарный запас в своих методах, извлечениях, chunking или NER из свободного текста?
  • Зная цель состоит в извлечении фраз из свободного текста - какой формат лучше всего подходит для этого пользовательского словаря для работы с инструментом НЛП? XML, JSON, деревья, куски IOB, другие?
  • Любой инструмент, помогающий преобразовать таблицу SQL (оригинальный пользовательский словарь) в формат словаря, с которым должен работать алгоритм НЛП?
  • Нужно ли интегрироваться с другими (непитоновыми) инструментами, такими как GATE, KEA, Lingpipe, Apache Stanbol или OpenNLP?
  • Существует ли API для тегов/извлечения и для создания пользовательского словаря?
  • Любой опыт работы с RapidMiner или TextRazor? Могут ли эти инструменты помочь с этим?

Спасибо!

ответ

0

После многих часов проверки API, мы решили пойти с TextRazor.

Качество вывода извлечения/классификации фразы NLP превосходно. TextRazor использует Freebase и DBpedia (среди других репозиториев), и это позволяет TextRazor классифицировать/классифицировать/извлекать ФРАЗЫ, такие как «компьютерная безопасность» - правильно, как один объект (а не как и многие другие API-интерфейсы - некорректно классифицировать этот пример как один класс «компьютер», а другой класс - «безопасность»). Программный контроль над тем, какие термины TextRazor будут использовать, а какие - нет - снова, очень просто.

С точки зрения скорости - TextRazor является удивительно быстрым. Если я правильно понимаю, он использует параллельные вычисления для многих (сотни? Тысяч?) Машин Amazon по требованию.

Стоимость - мы сравнили ее с другими и провели углубленный анализ с одним из своих конкурентов (очень большой компанией с 3 буквами) - и они определенно конкурентоспособны и разумны.

Интеграция с их API с использованием Python была (относительно) прямолинейной, за исключением незначительной проблемы с https при работе локально в рамках Web2Py. Если вы нажмете препятствие при использовании TextRazor на Web2Py на местном уровне - не стесняйтесь пинговать меня, и я с радостью поделюсь нашим решением.

Обслуживание/поддержка - почти мгновенно - они обычно отвечают в течение 12 часов на все запросы.

Раскрытие информации - у меня нет интересов, акций или каких-либо других финансовых преимуществ, связанных с TextRazor, и мы на самом деле все еще находимся на их свободном плане - поэтому мы еще не заплатили им за их услуги API.