相关疑难解决方法(0)

使用nltk自定义标记

我正在尝试创建一个类似英语的小语言来指定任务.基本思想是将一个陈述分成这些动词应该适用的动词和名词短语.我正在使用nltk,但没有得到我希望的结果,例如:

>>> nltk.pos_tag(nltk.word_tokenize("select the files and copy to harddrive'"))
[('select', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('and', 'CC'), ('copy', 'VB'), ('to', 'TO'), ("harddrive'", 'NNP')]
>>> nltk.pos_tag(nltk.word_tokenize("move the files to harddrive'"))
[('move', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('to', 'TO'), ("harddrive'", 'NNP')]
>>> nltk.pos_tag(nltk.word_tokenize("copy the files to harddrive'"))
[('copy', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('to', 'TO'), ("harddrive'", 'NNP')]
Run Code Online (Sandbox Code Playgroud)

在每种情况下,它都没有意识到第一个单词(选择,移动和复制)是作为动词.我知道我可以创建自定义标注器和语法来解决这一点,但在同一时间,我不愿去重新发明轮子,当很多东西是我的联赛.我特别希望能够处理非英语语言的解决方案.

所以无论如何,我的问题之一是:这种语法有更好的标记吗?有没有办法可以比现有的标记更加频繁地使用动词形式?有没有办法训练标记器?有更好的方法吗?

python nltk

27
推荐指数
3
解决办法
1万
查看次数

从命令行运行脚本和从exec()运行PHP有什么区别?

我正在尝试使用PHP中的exec()运行Python脚本.当我使用cmd窗口直接运行它时,我的命令工作正常,但是当我exec()在PHP中运行它时会产生错误.

我的Python脚本使用NTLK来查找专有名词.示例命令:

"C:\Python25\python.exe" "C:\wamp\projects\python\trunk\tests\find_proper_nouns.py" "I went to London this morning" 
Run Code Online (Sandbox Code Playgroud)

[London]从我运行它时返回cmd,但是当我运行相同的命令时,在Apache日志中抛出一个错误exec().脚本正在运行正常 - 如果我更改python脚本,print "Hello World"那就返回正常了.

我知道任何人都知道如何解决这个NLTK错误是一个很大的问题,但我真的可以做任何指针,为什么运行它exec是不同的cmd.(命令相同).

我正在使用Apache 2.2.11在Windows 7上运行WAMP.

这是Apache日志中的错误:

Traceback (most recent call last):
  File "C:\wamp\projects\python\trunk\tests\find_proper_nouns_command_line.py", line 6, in <module>
    parts = nltk.pos_tag(text)
  File "C:\Python25\lib\site-packages\nltk\tag\__init__.py", line 62, in pos_tag
    tagger = nltk.data.load(_POS_TAGGER)
  File "C:\Python25\lib\site-packages\nltk\data.py", line 590, in load
    resource_val = pickle.load(_open(resource_url))
  File "C:\Python25\lib\site-packages\nltk\data.py", line 669, in _open
    return find(path).open()
  File "C:\Python25\lib\site-packages\nltk\data.py", line …
Run Code Online (Sandbox Code Playgroud)

php python apache exec nltk

7
推荐指数
2
解决办法
4877
查看次数

如何在NLTK中使用pos_tag?

所以我试图在列表中标记一堆单词(准确地说是POS标记),如下所示:

pos = [nltk.pos_tag(i,tagset='universal') for i in lw]
Run Code Online (Sandbox Code Playgroud)

在哪里lw是一个单词列表(它真的很长或者我会发布它但它就像[['hello'],['world']](也就是每个列表包含一个单词的列表列表)但是当我尝试运行它时我得到:

Traceback (most recent call last):
  File "<pyshell#183>", line 1, in <module>
    pos = [nltk.pos_tag(i,tagset='universal') for i in lw]
  File "<pyshell#183>", line 1, in <listcomp>
    pos = [nltk.pos_tag(i,tagset='universal') for i in lw]
  File "C:\Users\my system\AppData\Local\Programs\Python\Python35\lib\site-packages\nltk\tag\__init__.py", line 134, in pos_tag
    return _pos_tag(tokens, tagset, tagger)
  File "C:\Users\my system\AppData\Local\Programs\Python\Python35\lib\site-packages\nltk\tag\__init__.py", line 102, in _pos_tag
    tagged_tokens = tagger.tag(tokens)
  File "C:\Users\my system\AppData\Local\Programs\Python\Python35\lib\site-packages\nltk\tag\perceptron.py", line 152, in tag
    context = self.START + [self.normalize(w) for w in …
Run Code Online (Sandbox Code Playgroud)

python nlp nltk pos-tagger

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

nltk ×3

python ×3

apache ×1

exec ×1

nlp ×1

php ×1

pos-tagger ×1