我目前正在使用NLTK进行语言处理,但我遇到了句子标记化的问题.
问题在于:假设我有一句话:"图2显示了美国地图." 当我使用punkt tokenizer时,我的代码如下所示:
from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParameters
punkt_param = PunktParameters()
abbreviation = ['U.S.A', 'fig']
punkt_param.abbrev_types = set(abbreviation)
tokenizer = PunktSentenceTokenizer(punkt_param)
tokenizer.tokenize('Fig. 2 shows a U.S.A. map.')
Run Code Online (Sandbox Code Playgroud)
它返回:
['Fig. 2 shows a U.S.A.', 'map.']
Run Code Online (Sandbox Code Playgroud)
标记器无法检测缩写"USA",但它在"fig"上工作.现在当我使用默认的tokenizer时,NLTK提供:
import nltk
nltk.tokenize.sent_tokenize('Fig. 2 shows a U.S.A. map.')
Run Code Online (Sandbox Code Playgroud)
这次我得到:
['Fig.', '2 shows a U.S.A. map.']
Run Code Online (Sandbox Code Playgroud)
它承认更常见的"美国",但没有看到"无花果"!
我该如何结合这两种方法?我想使用默认缩写选项以及添加我自己的缩写.
我想安装PyEnchant进行拼写检查,它需要在我的机器上安装附魔.但我能找到的所有.exe文件都是针对win32系统的.有没有其他方法在Windows 64位机器上安装它?
我现在有一个包含软返回的 MS Word 文档。我想将所有软回报转换为硬回报。Python 有能力做到这一点吗?我正在使用 Python 3.4。
我在 Windows 64 位机器上使用 Python 3.4。
我目前有一个具有多个层次结构的 xml 文件。在 xml 树中有许多名为“段落”的元素。但它们可能处于不同的层次结构。
有什么方法可以简单地计算这些元素的数量吗?遍历整棵树似乎太耗时了。