use*_*966 4 python utf-8 arabic stemming
我在 IDLE(Python) 上运行以下代码,我想输入阿拉伯语字符串并获取它的词干,但实际上它不起作用
>>> from nltk.stem.isri import ISRIStemmer
>>> st = ISRIStemmer()
>>> w= '?????'
>>> join = w.decode('Windows-1256')
>>> print st.stem(join).encode('Windows-1256').decode('utf-8')
Run Code Online (Sandbox Code Playgroud)
运行它的结果是 w 中相同的文本,即 '?????' 这不是词干
但是什么时候执行以下操作:
>>> print st.stem(u'????????')
Run Code Online (Sandbox Code Playgroud)
结果成功并返回'???'的词干
为什么将一些单词传递给 stem() 函数不会返回词干?
上面的代码在 Python 3 中不起作用,因为我们正在尝试解码已经解码的对象。因此,不再需要从 UTF-8 解码。
这是在 Python 3 中应该可以正常工作的新代码。
import nltk
from nltk.stem.isri import ISRIStemmer
st = ISRIStemmer()
w= '?????'
print(st.stem(w))
Run Code Online (Sandbox Code Playgroud)
好的,我自己使用以下方法解决了这个问题:
\nw = '\xd8\xad\xd8\xb1\xd9\x83\xd8\xa7\xd8\xaa' \nst.stem(w.decode('utf-8'))\nRun Code Online (Sandbox Code Playgroud)\n它正确地给出了根,即"\xd8\xad\xd8\xb1\xd9\x83"