НЛП преобразование текста Изменение темы - PullRequest
0 голосов
/ 24 апреля 2019

Я новичок в мире НЛП, но хотел бы знать, есть ли в настоящее время какой-либо простой способ (с помощью службы или OSS и т. Д.) Изменить предмет основной массы текста с помощью НЛП, если известен исходный предмет (ижелательно, если такой метод доступен на нескольких языках?) (эквивалентно предложениям метода (). toPastTense () подробно / доступно здесь: https://nlp -compromise.github.io )

Допустим, что оригинальный текст написан о «вы», и вы знаете, что так будет всегда, но вы хотите автоматически сгенерировать версию текста, которая будет изменена на «ваш брат»

(совершенно бессмысленно) пример:

"Вы должны идти по коридору, когда вы достигнете угла, который вы сделали."

Превратится в

«Твой брат должен идти по коридору, когда он достигает угла, он готов.»

Насколько я понимаю, этот тип текстапреобразование зависит от лемматизации (как дев этом посте https://towardsdatascience.com/introduction-to-natural-language-processing-for-text-df845750fb63), но поскольку я изучал методы преобразования текста, я не видел никаких методов, относящихся к теме предложений?

1 Ответ

1 голос
/ 24 апреля 2019

Я не знаю ни о чем другом, но это, безусловно, можно сделать. Например, используя TextBlob , вы можете попытаться придумать функцию, использующую части речи. Очевидно, вам понадобится больше, чем этот небольшой фрагмент, например, функция, которая проверяет соответствие субъекта / глагола, но это пример подхода, и, надеюсь, это пища для размышлений.

from textblob import TextBlob
from textblob.taggers import NLTKTagger
from textblob import Word

def lil_subj_replacer(phrase,input_subj,input_prp):
    nltk_tagger = NLTKTagger()
    blob = TextBlob(phrase,pos_tagger=nltk_tagger)
    subject = True
    for i,keyval in enumerate(blob.pos_tags):
        key = keyval[0]
        value = keyval[1]
        if (value == 'PRP'):
            if subject:
                blob.words[i] = input_subj
                subject = False
            else:
                blob.words[i] = input_prp

            blob.words[i+1] = Word(blob.words[i+1]).lemmatize('v')
    return ' '.join(blob.words)

my_phrase = 'You should go down the hall, as you reach the corner you are done.'
print(my_phrase)
print(lil_subj_replacer(phrase=my_phrase,input_subj='Your brother',input_prp='he'))

оригинал: You should go down the hall, as you reach the corner you are done.

без лемматизации: Your brother should go down the hall as he reach the corner he are done

лемматизированные глаголы: Your brother should go down the hall as he reach the corner he be done

edit: добавлен пример с lemmaz, так как вы упомянули его.

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