Як я висловлюю тонкі співвідношення у своїх даних?


20

"А" пов'язаний з "В" і "С". Як я можу показати, що в цьому контексті можуть бути пов'язані також "B" і "C"?

Приклад:

Ось кілька заголовків про недавню п’єсу на Бродвеї:

  1. Гленгарі Глена Росса Девіда Мамета, у головній ролі Аль Пачіно, відкривається на Бродвеї
  2. Аль Пачіно в «Гленгаррі Глен Росс»: Що думали критики?
  3. Аль-Пачіно заробляє неприємні відгуки на розвороті на Бродвей
  4. Театральний огляд: Гленгаррі Глен Росс важко продає зірок
  5. Гленгаррі Глен Росс; Гей, хто вбив Кліг вогнів?

Проблема:

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

Як я можу знайти стосунки, які підказують, що №3 пов'язаний з №4? Обидва їх можна легко підключити до №1, але не один до одного.

Чи є назва (Googlable) для подібних даних або структури? Який алгоритм я шукаю?

Мета:

З огляду на 1000 заголовків, система, яка автоматично підказує, що ці 5 пунктів, мабуть, приблизно однакові.

Якщо чесно, то пройшло так довго, як я запрограмував, що втрачаю, як правильно сформулювати цю проблему. (Я не знаю, чого не знаю, якщо це має сенс).

Це особистий проект, і я пишу його на Python. Заздалегідь дякую за будь-яку допомогу, поради та вказівки!


1
звучить як необхідний синтаксичний аналіз мови та / або потрібна інша ймовірнісна техніка
jk.

2
Це ВЕЛИКЕ запитання!
Майкл Браун

Я думаю, я бачив системи, які можуть це реалізувати в Prolog.
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner Я підозрюю, що ви думаєте про об'єднання в логічному програмуванні ..?
Ізката

Відповіді:



7

Ви входите у світ семантики. Є публічні служби, які розберуть текст і витягнуть основні поняття (швидкий пошук Semantic API виявив декілька), які розберуть документ у вільній формі та повернуть основні теми, включаючи людей, місця, речі, дати та концепції . Деякі з кращих повернуться у форматі, відомому як [RDF]

Якщо ви хочете створити власну систему, яка може це зробити, поле " Обробка природних мов", і це дуже інтригуюча кроляча яма, щоб пірнути вниз.


4

Якщо це взагалі можливо, отримайте розповідь разом із заголовком. Заголовки іноді можуть бути «милими» і робити лише дотичні посилання на те, що йдеться. Це працює нормально з людьми (оскільки вони мають глобальний контекст ), але не так добре з НЛП.

Як згадується у відповіді Карла Білефельдта, групування - це хороший підхід, але Диявол - у деталях. Вам не тільки потрібно вибрати кластерний підхід, який відповідає вашій проблемі / користувальницькому простору, ви також повинні з'ясувати, що кластеризується.

Моє переживання - пошук інформації (ІР) з 80-х - 90-х, і ми зосередилися на пошуку подібності та кластеризації на основі центроїдів . Наші документи були представлені зваженими векторами атрибутів , що в основному є переліком термінів та їх відносною важливістю в документі. Цей підхід може працювати (хоча краще з деякими колекціями, ніж інші), але у нього є проблеми з короткими милими заголовками, оскільки їм не вистачає ключових термінів лексики, щоб поєднати речі разом. Але якщо ви використовуєте весь документ, то ви отримаєте набагато багатший список термінів (і, можливо, краще відчуття важливості), і цей список термінів, ймовірно, полегшить визначення з'єднання (тобто обчислити), коли у вас є заголовки, які є "милий".

Мій електронний лист є у моєму профілі, якщо ви хочете потрапити у проблеми генерації вектора тощо.

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