我如何计算句子中的单词?我正在使用Python.
例如,我可能有字符串:
string = "I am having a very nice 23!@$ day. "
Run Code Online (Sandbox Code Playgroud)
这将是7个字.我在每个单词之后/之前以及涉及数字或符号时随机数量的空格都遇到了问题.
我正在尝试nltk.tag.stanford module 用来标记一个句子(首先像wiki的例子),但我一直收到以下错误:
Traceback (most recent call last):
File "test.py", line 28, in <module>
print st.tag(word_tokenize('What is the airspeed of an unladen swallow ?'))
File "/usr/local/lib/python2.7/dist-packages/nltk/tag/stanford.py", line 59, in tag
return self.tag_sents([tokens])[0]
File "/usr/local/lib/python2.7/dist-packages/nltk/tag/stanford.py", line 81, in tag_sents
stdout=PIPE, stderr=PIPE)
File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 160, in java
raise OSError('Java command failed!')
OSError: Java command failed!
Run Code Online (Sandbox Code Playgroud)
或以下LookupError错误:
LookupError:
===========================================================================
NLTK was unable to find the java file!
Use software specific configuration paramaters or set the JAVAHOME environment variable.
=========================================================================== …Run Code Online (Sandbox Code Playgroud) 给定文本I/O流(例如来自open()或StringIO()),如何创建另一个流来过滤掉与特定模式匹配的行,而不首先读取整个输入流?我知道我可以很容易地得到一个可迭代的(line for line in input if filter(line)),但我想要一个可搜索的流.我也理解,即使底层流允许随机访问,搜索也需要读取整个流,但这仍然比读取整个文件更好StringIO("".join(line for line in input if filter(line))).
(作为一个附加组件,如何记住重复搜索的指针将受到欢迎!)
我目前有这样一句话:
text = "This is a car."
Run Code Online (Sandbox Code Playgroud)
然后我使用一个tokeniser,然后像这样干它:
ps = PorterStemmer()
text = word_tokenize(text)
stemmed_words = []
for w in words:
stemmed_words.append(ps.stem(w))
Run Code Online (Sandbox Code Playgroud)
但是,我现在希望使用NLTK的lemmainser来代替.要使用它,我需要给它一个像这样的单词的部分(在循环内):
lemmatizer = WordNetLemmatizer()
word = lemmatizer.lemmatize(w, pos=pos)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何得到pos论证.我知道我可以使用它来获得演讲的一部分,但不接受作为参数:
pos = nltk.pos_tag(text)
Run Code Online (Sandbox Code Playgroud) 我正在尝试找到一种使用nltk模块在Python中拆分单词的方法。考虑到我拥有的原始数据(例如带符号词的列表),我不确定如何达到我的目标
['usingvariousmolecularbiology', 'techniques', 'toproduce', 'genotypes', 'following', 'standardoperatingprocedures', '.', 'Operateandmaintainautomatedequipment', '.', 'Updatesampletrackingsystemsandprocess', 'documentation', 'toallowaccurate', 'monitoring', 'andrapid', 'progression', 'ofcasework']
Run Code Online (Sandbox Code Playgroud)
如您所见,许多单词被粘在一起(即“ to”和“ produce”被粘在一个字符串“ toproduce”中)。这是从PDF文件中抓取数据的一种人工产物,我想找到一种使用python中的nltk模块将卡住的单词拆分(即,将“ toproduce”拆分为两个单词:“ to”和“ produce”的方法);将“ standardoperatingprocedures”分为三个词:“ standard”,“ operating”,“ procedures”)。
感谢您的帮助!
python text-processing text-analysis nltk python-textprocessing