nltk.download()
在OS X上为我挂起.以下是发生的事情:
$python
>>> Python 2.7.2 (default, Oct 11 2012, 20:14:37)
>>> [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
>>> import nltk
>>> nltk.download()
showing info http://nltk.github.com/nltk_data/
Run Code Online (Sandbox Code Playgroud)
在那之后,它完全冻结了.
我根据ntlk安装页面安装了所有内容.我在OS X 10.8.3上.在我的Linux机器上,它只是没有问题.
有任何想法吗?
披露:我搜索了很多,我不认为我的问题(对于我的配置)在这里得到了解答.例如, 运行python脚本,因为cgi apache服务器 没有回答它.
所以:我有一个最简单的脚本:
#!/usr/bin/env python
print "Content-type: text/html"
print ""
print "<h1>Hello from Python!</h1>"
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中运行它时,它实际上显示自己而不是Python的预期 Hello!
我做了以下操作让它运行:
a)每个人都可以执行; 它完美地运行在一个外壳中.
b)它位于具有以下配置的虚拟目录中(在/ etc/apache2/sites-available/my_cgi_dir中):
Run Code Online (Sandbox Code Playgroud)<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/my_cgi_dir/> Options Indexes +ExecCGI FollowSymLinks MultiViews AddHandler cgi-script .cgi .py AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log …
这是可能的:使用NLTK获得(类似)斯坦福命名实体识别器功能吗?
有什么例子吗?
特别是,我感兴趣的是提取LOCATION部分文本.例如,来自文本
会议将于11月18日在南卡罗来纳州威斯汀西区22号12345举行
理想情况下,我想得到类似的东西
(S
22/LOCATION
(LOCATION West/LOCATION Westin/LOCATION)
st./LOCATION
,/,
(South/LOCATION Carolina/LOCATION)
,/,
12345/LOCATION
Run Code Online (Sandbox Code Playgroud)
.....
或者干脆
22 West Westin st., South Carolina, 12345
Run Code Online (Sandbox Code Playgroud)
相反,我只能得到
(S
The/DT
meeting/NN
will/MD
be/VB
held/VBN
at/IN
22/CD
(LOCATION West/NNP Westin/NNP)
st./NNP
,/,
(GPE South/NNP Carolina/NNP)
,/,
12345/CD
on/IN
Nov.-18/-NONE-)
Run Code Online (Sandbox Code Playgroud)
请注意,如果我将文本输入 http://nlp.stanford.edu:8080/ner/process,我得到的结果远非完美(街道号和邮政编码仍然缺失),但至少"st." 是LOCATION的一部分,南卡罗来纳州是一个位置,而不是一些"GPE/NNP":?
我做错了什么?如何修复它以使用NLTK从某些文本中提取位置片?
提前谢谢了!
免责声明:我仔细阅读了这个主题: 街道地址搜索字符串 - Python或Ruby 以及许多其他资源.
到目前为止,对我来说没什么用.
在这里有一些更多的细节我正在寻找的是:
规则很轻松,我绝对不会要求一个涵盖所有案例的完美代码; 只是一些简单的基本假设,地址应采用以下格式:
a)街道号码(1 ... N位数);
b)街道名称:一个或多个单词大写;
b-2)(可选)如果可以用缩写作为前缀,那将是最好的."S.","N.","E.","W"
c)(可选)单位/公寓/等可以是任意(包括空)数量的任意字符
d)街道"类型":("st.","ave.","way")之一;
e)城市名称:1个或更多大写词;
f)(可选)州名缩写(2个字母)
g)(可选)zip,任意5位数.
以上都不需要是有效的东西(例如现有的城市或邮编).
到目前为止,我正在尝试这样的表达式:
pat = re.compile(r'\ d {1,4}(\ w +){1,5},(.*),(\ w +){1,5},(AZ | CA | CO | NH), [0-9] {5}( - [0-9] {4})?',re.IGNORECASE)
>>> pat.search("123 East Virginia avenue, unit 123, San Ramondo, CA, 94444")
Run Code Online (Sandbox Code Playgroud)
不要工作,对我来说理解原因并不容易.具体来说:我如何在我的模式中将一组任何单词与应该遵循的特定单词分开,如州名缩写.或街道"类型("st.,ave.)?
无论如何:这是我希望得到的一个例子:给定def ex_addr(文本):#re re magic#返回第一个地址(所有地址?)或者如果没有找到则返回None
for t in [
'The meeting will be held at 22 West Westin st., South Carolina, 12345 on Nov.-18',
'The meeting will be …
Run Code Online (Sandbox Code Playgroud)