博主的环境为Python 3.7. polyglot 需要提前安装好numpy和libicu-dev. 关于libicu-dev我们可以先放一放,只需要你有numpy。
pip install polyglot
这个时候就看似“安装“好了,一般也不会报错,在代码中import也没有问题。
from polyglot.text import Text, Word
#######下面是报错
No module named 'icu'
表明这时候我们仍然缺少module.
PyICU‑2.4.3‑cp37‑cp37m‑win_amd64.whl
PyICU‑2.4.3‑cp37‑cp37m‑win32.whl
这里,cp37就是python 3.7的意思。至于win32和win_amd64如何选择,我们可以通过python自带的platform来看。
同样,打开Windows命令提示符,输入python,打开python.执行如下代码即可:
>>> import platform
>>> platform.machine()
'AMD64'
可以看到,博主的是AMD64,因此我下载第一个带有win_amd64字样的文件。
C:\Users\你的用户名\AppData\Local\Programs\Python\Python37```
这里,Users就是C盘里面那个用户文件夹。
python的lib都存在Lib下的site-packages文件夹中:
C:\Users\你的用户名\AppData\Local\Programs\Python\Python37\Lib\site-packages
拷贝后,我们在该文件夹里面,按住“shift”同时点击鼠标右键,选择“在此处打开Powershell窗口”,当然,你选择用命令提示行慢慢cd进去也行。
pip install pycld2‑0.41‑cp37‑cp37m‑win_amd64.whl
pip install PyICU‑2.4.3‑cp37‑cp37m‑win_amd64.whl
pip install Morfessor‑2.0.6‑py3‑none‑any.whl
这里就完成了。
我是在看《Python自然语言处理》这本书,运行第三章的代码时候出错。
from polyglot.text import Text, Word
word = "unexpected"
text = "disagreement"
text1 = "disagree"
text2 = "agreement"
text3 = "quirkiness"
text4 = "historical"
text5 = "canonical"
text6 = "happiness"
text7 = "unkind"
text8 = "dogs"
text9 = "expected"
words_derv = ["happiness", "unkind"]
word_infle = ["dogs", "expected"]
words = ["unexpected", "disagreement", "disagree", "agreement", "quirkiness", "canonical" "historical"]
def polyglot_stem():
print ("\nDerivational Morphemes using polyglot library")
for w in words_derv:
w = Word(w, language="en")
print("{:<20}{}".format(w, w.morphemes))
print ("\nInflectional Morphemes using polyglot library")
for w in word_infle:
w = Word(w, language="en")
print("{:<20}{}".format(w, w.morphemes))
print ("\nSome Morphemes examples using polyglot library")
for w in word_infle:
w = Word(w, language="en")
print("{:<20}{}".format(w, w.morphemes))
if __name__ == "__main__":
polyglot_stem()
这里会报出很奇怪的错误,我们在使用morphemes的时候,需要下载polyglot已经做好的模型,比如morph2.en对应英文的形态分析的模型。下载方法如下,在你的项目文件所在的目录下,输入:
polyglot download morph2.en
更多的模型下载方法可以看这里:https://polyglot.readthedocs.io/en/latest/MorphologicalAnalysis.html?highlight=word%20morpheme
这时候,我这里会报如下错误,当然各位要是没用这种错误是最好的。
from signal import signal, SIGPIPE, SIG_DFL
ImportError: cannot import name 'SIGPIPE'```
如何解决,我们需要进入安装好的polyglot文件夹中,它就位于上面说到的site-packages里面。
#from signal import signal, SIGPIPE, SIG_DFL
#signal(SIGPIPE, SIG_DFL)
这就是我遇到的所有问题,希望能帮到有类似问题的朋友们。