Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
898
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
951
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
941
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1725
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4398
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как работают механизмы обнаружения контента, такие как Zemanta и Open Calais?
Мне было интересно, как семантический сервис, такой как Open Calais, вычисляет названия компаний или людей, технологические концепции, ключевые слова и т. д. из отрывка текста. Это потому, что у них есть большая база данных, с которой они сопоставляют текст?
Как такая служба, как Zemanta, может знать, какие изображения предложить, например, фрагменту текста?
Михал Финкельштейн из 38-го здесь.
Во-первых, спасибо за ВАШ интерес. Я отвечу здесь, но я также призываю вас прочитать больше на форумах OpenCalais; там есть много информации, включая - но не ограничиваясь этим: http://opencalais.com/tagging-information http://opencalais.com/how-does-calais-learn также не стесняйтесь следовать за нами на Twitter (@OpenCalais) или на email нас на team@opencalais.com
Теперь к ответу:
OpenCalais основана на десятилетних исследованиях и разработках в области обработки естественного языка и анализа текста.
Мы поддерживаем полный "NLP Stack" (как мы любим его называть): От токенизации текста, морфологического анализа и тегирования POS до поверхностного разбора и идентификации именных и вербальных фраз.
Семантика вступает в игру, когда мы ищем сущности (a.k.a. Извлечение Сущности, Распознавание Именованных Сущностей). Для этой цели у нас есть сложная система на основе правил, которая объединяет правила обнаружения, а также lexicons/dictionaries. эта комбинация позволяет нам идентифицировать имена companies/persons/films и т. д., даже если они не существуют ни в одном доступном списке.
Для наиболее заметных объектов (таких как люди, компании) мы также выполняем разрешение анафоры, перекрестную ссылку и канонизацию/нормализацию имени на уровне статьи, поэтому мы будем знать, что 'John Smith' и 'Mr. Smith', например, вероятно, относятся к одному и тому же лицу. Поэтому короткий ответ на ваш вопрос-нет, это не просто сопоставление с большими базами данных.
События / факты действительно интересны, потому что они берут наши правила открытия на один уровень глубже; мы находим отношения между сущностями и помечаем их соответствующим типом, например M&As (отношения между двумя или более компаниями), изменения занятости (отношения между компаниями и людьми) и так далее. Излишне говорить, что извлечение событий/фактов невозможно для систем, основанных исключительно на лексиконах. По большей части наша система настроена на точность, но мы всегда стараемся поддерживать разумный баланс между точностью и полнотой.
Кстати, есть некоторые интересные новые возможности метаданных, выходящие позже в этом месяце, так что следите за обновлениями.
С уважением,
Михал
Я не знаком с конкретными перечисленными услугами, но область обработки естественного языка разработала ряд методов, которые позволяют извлекать такого рода информацию из общего текста. Как сказал Шон, как только у вас есть термины-кандидаты, нетрудно найти эти термины с некоторыми другими сущностями в контексте, а затем использовать результаты этого поиска, чтобы определить, насколько вы уверены, что извлеченный термин является фактическим объектом интереса.
OpenNLP -отличный проект, если вы хотите поиграть с обработкой естественного языка. Названные вами возможности, вероятно, лучше всего будут реализованы с помощью распознавателей именованных сущностей (NER) (алгоритмы, которые обычно обнаруживают имена собственные, а иногда и даты) и / или устранения неоднозначности смысла слов (WSD) (например: слово 'bank' имеет различные значения в зависимости от контекста, и это может быть очень важно при извлечении информации из текста. Учитывая предложения: "самолет накренился влево", "the snow bank was high", and "they robbed the bank" вы можете видеть, как двусмысленность может играть важную роль в понимании языка)
Методы обычно строятся друг на друге, и NER - это одна из более сложных задач, поэтому для успешного выполнения NER вам, как правило, нужны точные маркеры (обратите внимание, что статистические подходы имеют тенденцию к лучшему), строковые стеммеры (алгоритмы, которые объединяют похожие слова в общие корни: так что такие слова, как информант и информатор, рассматриваются одинаково), обнаружение предложений ('Mr. Джонс был высокого роста.'- это только одно предложение, поэтому вы не можете просто проверить пунктуацию), part-of-speech таггеров (POS таггеров) и WSD.
Есть порт python (части) OpenNLP под названием NLTK (http://nltk.sourceforge.net), но у меня пока нет большого опыта работы с ним. Большая часть моей работы была связана с портами Java и C#, которые хорошо работают.
Все эти алгоритмы зависят от языка, конечно, и они могут занять значительное время для запуска (хотя, как правило, это быстрее, чем чтение обрабатываемого материала). Поскольку модель state-of-the-art в значительной степени основана на статистических методах, необходимо также учитывать значительную долю ошибок. Кроме того, поскольку частота ошибок влияет на все этапы, а что-то вроде NER требует многочисленных этапов обработки, (tokenize - > sentence detect - > POS tag - > WSD - > NER) частота ошибок увеличивается.
Открытые Кале, вероятно, используют технологию синтаксического анализа языка и языковую статику, чтобы угадать, какие слова или фразы являются именами, местами, компаниями и т. д. Тогда это просто еще один шаг, чтобы сделать какой-то поиск этих сущностей и вернуть метаданные.
Zementa, вероятно, делает нечто подобное, но сопоставляет фразы с метаданными, прикрепленными к изображениям, чтобы получить соответствующие результаты.
Это, конечно, нелегко.