Як скласти список споріднених слів на основі початкових ключових слів?


19

Нещодавно я побачив класну функцію, яка колись була доступна в Google Таблицях: ви починаєте із написання кількох пов’язаних ключових слів у послідовних клітинках, скажімо: "синій", "зелений", "жовтий", і вона автоматично генерує подібні ключові слова (у цьому випадку , інші кольори). Дивіться більше прикладів цього відео на YouTube .

Я хотів би відтворити це у власній програмі. Я думаю використовувати Freebase, і це буде працювати так інтуїтивно:

  1. Отримайте список заданих слів у Freebase;
  2. Знайдіть їх "спільний знаменник (і)" і побудуйте на цьому метрику відстані;
  3. Ранжуйте інші поняття на основі їх "відстані" до початкових ключових слів;
  4. Відобразити наступні найближчі поняття.

Оскільки я не знайомий з цією сферою, мої запитання:

  • Чи є кращий спосіб зробити це?
  • Які інструменти доступні для кожного кроку?

Я здогадуюсь, що це засновано на вивченні тем у великому корпусі.
чакраварти

Якщо ви хочете знайти їх пояснення, я вважаю, що було написано документ про основний метод під назвою Google Sets.
jamesmf

1
Ця проблема називається "розширення запитів".
Емре

Відповіді:


15

Алгоритм word2vec може бути хорошим способом отримати більше елементів для списку подібних слів. Це непідконтрольний алгоритм «глибокого навчання», який раніше був продемонстрований за допомогою навчальних даних на основі Вікіпедії (допоміжні сценарії надаються на кодовій сторінці Google).

В даний час реалізовано C та Python . Це навчальний посібник по Радим Řehůřek , автор бібліотеки теми моделювання Gensim , є прекрасним місцем для початку.

«Однією темі» демонстрація на підручник є хорошим прикладом retreiving подібні слова до одного члена (спробуйте знайти на «червоний» або «жовтий»). Слід розширити цю техніку, щоб знайти слова, які мають найбільшу загальну схожість із набором вхідних слів.


5

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

Більше інформації тут: http://nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

Для цього кроку:

Ранжуйте інші поняття на основі їх "відстані" до початкових ключових слів;

Є кілька семантичних показників подібності, які ви могли б вивчити. Ось посилання на деякі слайди, які я зібрав для класового проекту, використовуючи кілька таких показників подібності в WordNet: http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Sроўності. pdf


3

Це одна з приємних проблем, коли обсяг може відрізнятися від домашнього завдання до проекту розміру Google.

Дійсно, можна почати із спільного виникнення слів (наприклад, умовна ймовірність). Ви швидко дізнаєтесь, що ви отримаєте список слів стоп, як пов’язаних більшість слів, просто тому, що вони дуже популярні. Використання підвищення умовної ймовірності подбає про слова зупинки, але зробить відношення схильним до помилок у невеликій кількості (більшість ваших випадків). Ви можете спробувати Жакарда, але оскільки він симетричний, стосунків багато не знайдеться.

Тоді ви можете розглянути стосунки, які з’являються лише на невеликій відстані від основного слова. Ви можете (і повинні) розглянути відносини на основі загальних корпусів (наприклад, Вікіпедія) та конкретних користувачів (наприклад, його електронних листів).

Зовсім скоро у вас буде багато заходів щодо спорідненості, коли всі заходи хороші та мають певну перевагу перед іншими.

Для того, щоб поєднати такі заходи, я люблю переносити проблему на проблему класифікації.

Ви повинні побудувати набір даних з пари слів і позначити їх як "пов'язано". Для того, щоб створити великий мічений набір даних, ви можете:

  • Використовуйте джерела відомих споріднених слів (наприклад, старі добрі категорії Вікіпедії) для позитивних
  • Більшість слів, не відомих як споріднені, не пов’язані між собою.

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

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