小编joe*_*ong的帖子

如何避免NLTK的句子标记器拆分缩写?

我目前正在使用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)

它承认更常见的"美国",但没有看到"无花果"!

我该如何结合这两种方法?我想使用默认缩写选项以及添加我自己的缩写.

python nlp tokenize nltk

12
推荐指数
1
解决办法
3560
查看次数

在Windows 64位计算机上安装pyenchant

我想安装PyEnchant进行拼写检查,它需要在我的机器上安装附魔.但我能找到的所有.exe文件都是针对win32系统的.有没有其他方法在Windows 64位机器上安装它?

python windows pyenchant

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

我可以使用 Python 在 MS Word 文档中将软返回转换为硬返回吗?

我现在有一个包含软返回的 MS Word 文档。我想将所有软回报转换为硬回报。Python 有能力做到这一点吗?我正在使用 Python 3.4。

python ms-word

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

有没有办法使用Python计算xml文件中某个名称的元素数量?

我在 Windows 64 位机器上使用 Python 3.4。

我目前有一个具有多个层次结构的 xml 文件。在 xml 树中有许多名为“段落”的元素。但它们可能处于不同的层次结构。

有什么方法可以简单地计算这些元素的数量吗?遍历整棵树似乎太耗时了。

python xml xpath xml-parsing

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

标签 统计

python ×4

ms-word ×1

nlp ×1

nltk ×1

pyenchant ×1

tokenize ×1

windows ×1

xml ×1

xml-parsing ×1

xpath ×1