我有一个名为keywords
的字符串,它由一些用-
标记分隔的句子组成。我想在我的keywords
变量中获取每个单词的词干,同时使其具有相同的形式(其中每个短语用-
标记分隔)
我尝试通过使用keywords
函数在.split()
中拆分每个短语,然后将每个短语标记为单个单词,然后阻止它们来做到这一点。但是我无法将输出连接成与keywords
变量相同的形式。这是尝试:
import nltk
from nltk.stem.isri import ISRIStemmer
stemmer = ISRIStemmer()
keywords =" الاسلام-التوحيد-الكافرون-افتراؤهم علي الله و تكذيبهم و جدالهم- النبوة-اثبات نبوته وصدق ما جاء به-وظيفته وصدق ما اوحى اليه"
phrases = keywords.split("-")
for phrase in phrases:
tokens = nltk.word_tokenize(phrase)
for token in tokens:
stemmedTokens = stemmer.stem(token)
这给了我每个词干分别是这样的:
سلم
وحد
كفر
فرؤ
علي
الل
و
كذب
...
但我希望输出完全像这样:
سلم-وحد-كفر-فرؤ علي الل و كذب وجدل-نبةاثب نبة صدق ما جاء به-وظف صدق ما وحي اليه
我希望每个单词都被词干并以字符串形式表示,该字符串变量具有与
keywords
变量相同的形式,即:" الاسلام-التوحيد-الكافرون-افتراؤهم علي الله و تكذيبهم و جدالهم- النبوة-اثبات نبوته وصدق ما جاء به-وظيفته وصدق ما اوحى اليه"
有什么帮助吗?
最佳答案
我相信您只想在内部循环后添加-
。这样您的代码将是:
import nltk
from nltk.stem.isri import ISRIStemmer
stemmer = ISRIStemmer()
keywords =" الاسلام-التوحيد-الكافرون-افتراؤهم علي الله و تكذيبهم و جدالهم- النبوة-اثبات نبوته وصدق ما جاء به-وظيفته وصدق ما اوحى اليه"
phrases = keywords.split("-")
stemmedTokens = []
for phrase in phrases:
tokens = nltk.word_tokenize(phrase)
for token in tokens:
stemmedTokens = stemmer.stem(token)
stemmedTokens.append("-") if i + 1 is not len(phrases) else None
另外,您可以使用列表推导:)
stemmedTokens = []
for i, phrase in enumerate(phrases):
tokens = nltk.word_tokenize(phrase)
[stemmedTokens.append(stemmer.stem(token)) for token in tokens]
stemmedTokens.append("-") if i + 1 is not len(phrases) else None
关于python - 想要帮助将词干和短语词干后再连接起来以形成字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54328614/