Как использовать функции анализа зависимостей для классификации текста? - PullRequest
0 голосов
/ 26 марта 2020

Я выполнил разбор зависимостей для предложения с использованием spacy и получил синтаксис c тегов зависимостей.

import spacy
nlp = spacy.load('en')
doc = nlp('Wall Street Journal just published an interesting piece on crypto currencies')

for token in doc:
    print("{0}/{1} <--{2}-- {3}/{4}".format(
        token.text, token.tag_, token.dep_, token.head.text, token.head.tag_))

Вывод

Стена / NNP <- соединение - Улица / NNP </p>

Улица / NNP <- соединение-- Журнал / NNP </p>

Журнал / NNP <- nsubj-- опубликовано / VBD </p>

просто / RB <- advmod-- опубликовано / VBD </p>

опубликовано / VBD <- ROOT - опубликовано / VBD </p>

an / DT <- det-- фрагмент / NN </p>

интересно / JJ <- амод - кусок / NN </p>

кусок / NN <- dobj-- опубликовано / VBD </p>

on / IN <- prep-- piece / NN </p>

crypto / JJ <- составные-- валюты / NNS </p>

валют / NNS <- pobj-- вкл / IN </p>

Я не не могу понять, как я могу использовать эту информацию для создания основанных на зависимостях функций для классификации текста . Каковы возможные способы создания из этого элементов для классификации текста?

Заранее спасибо ............

1 Ответ

0 голосов
/ 30 марта 2020

В spaCy в настоящее время нет прямого способа включить функции зависимостей в компонент textcat, если только вы не разберетесь с внутренностями кода.

В общем, вам придется подумайте о том, какие функции будут полезны, чтобы дать подсказки вашему алгоритму textcat. Вы можете сгенерировать двоичные функции для любого возможного «пути зависимости» в ваших данных, например, «RB --advmod-- VBD» - это одна функция, а затем подсчитать, сколько раз это происходит, но вы очень быстро получите очень разреженный набор данных .

Вам также могут быть интересны другие функции, такие как «то, что POS является ROOT словом», или предложение включает шаблоны типа «два существительных, соединенных глаголом». Но это действительно зависит от приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...