我编写了以下代码,它在我的计算机上工作正常,但在其他计算机上返回null。你能帮我解决这个问题。
import string
import nltk
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords
def preprocess(sentence):
sentence = sentence.lower()
specialChrs={'\xc2',''}
pattern=pattern = r'''(?x) # set flag to allow verbose regexps
([A-Z]\.)+ # abbreviations, e.g. U.S.A.
| \$?\d+%?
| \$?\d+(,|.\d+)*
| \w+([-'/]\w+)* # words w/ optional internal hyphens/apostrophe
|/\m+([-'/]\w+)*
'''
tokenizer = RegexpTokenizer(pattern)
tokens = tokenizer.tokenize(sentence)
print tokens
realToken= [e for e in tokens if len(e)>= 3 and len(e)<10]
stopWords = set(stopwords.words('english'))
stop_words = [w for w in realToken if not w in stopWords]
filtered_words = [w for w in stop_words if not w in specialChrs]
print filtered_words
# final_words = [w for w in filtered_words if not w[0]=='0' and w[1]=='x']
return filtered_words
str='I have one generalized rule, where in shellscript I check for all need packages, if any package does not exist, then install it other wise skip to next check. As I need to check and execute few other python as well shellscripts, I am using it. Is using shellscript for this is bad idea?'
preprocess(str)
这些是我计算机输出的一部分:
['i','have','one','generalized','rule','where','in', 'shellscript','i','check','for','all','need',.......'idea']
其他计算机的结果:
[('','','',''),('','','',''),('','','',''),('', '','',''),('','','',''),('','','',''),('','','','''' ),...]
我的电脑资讯
python 2.7.12 | Anaconda 2.3.0 (64位)| (默认,2016年7月2日,17:42:40) [gCC 4.4.7 20120313(Red Hat 4.4.7-1)]在linux2上 输入“帮助”,“版权”,“信用”或“许可”以获取更多信息。 Continuum Analytics为您带来了Anaconda。 请查看:http://continuum.io/thanks和https://anaconda.org
import nltk
print('nltk版本为{}。'。format(nltk。版本))
nltk版本是3.2.1。
我的朋友电脑
python 2.7.12 | Anaconda 4.1.1 (64位)| (默认情况下,2016年6月29日,11:42:40)[MSC v.1500 64位(AMD64)]在win32上 输入“帮助”,“版权”,“信用”或“许可”以获取更多信息。 Continuum Analytics为您带来了Anaconda。 请查看:http://continuum.io/thanks和https://anaconda.org
import nltk
print('nltk版本为{}。'。format(nltk。版本))
nltk版本是3.2.1。
另外,我在另一台计算机上测试我的代码并得到相同的结果。
该计算机的信息是:
Python 2.7.3(默认,2016年10月26日,21:01:49) linux2上的[GCC 4.6.3] 输入“帮助”,“版权”,“信用”或“许可”以获取更多信息。
答案 0 :(得分:1)
您的问题已解答in this page
您需要以这种方式更改正则表达式并命令解决您的问题。
`pattern = r'''(?x) # set flag to allow verbose regexps
(?:[A-Z]\.)+ # abbreviations, e.g. U.S.A.
| \$?\d+(?:\.\d+)?%?
| \w+(?:-\w+)* # words with optional internal hyphens
|/\m+(?:[-'/]\w+)*
'''`