我是NLP领域的新手,但想知道当前是否有任何简便的方法(使用服务或OSS等)在已知原始主题的情况下使用NLP更改大量文本的主题最好是否可以使用多种语言来提供这样的方法?)(等效于方法{(3)}上的句子().toPastTense()方法):
让我们说原始文本是关于“您”的,并且您知道情况总是如此,但是您想自动生成一个文本版本,将其更改为“您的兄弟”。
(非常荒谬)的示例:
“到达角落时,您应该走下大厅。”
会变成
“你的兄弟应该走到大厅,因为他到达角落时 完成。”
据我了解,这种类型的文本转换依赖于词形化(如这篇文章https://nlp-compromise.github.io所示),但是由于我一直在研究文本转换方法,所以我还没有发现任何与之相关的方法。句子的主题?
答案 0 :(得分:1)
我一无所知,但是肯定可以做到。例如,使用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
编辑:由于您提到了lemmaz,因此添加了示例。