基于词性标注的内容词提取
topia.termextract的Python项目详细描述
详细文档
术语提取
这个包通过使用一个简单的 词类(POS)标记算法。
http://bioie.ldc.upenn.edu/wiki/index.php/part-of-speech
POS标记器
pos标记器使用词典来标记带有标记的单词。可用标记的列表 可在以下位置找到:
http://bioie.ldc.upenn.edu/wiki/index.php/pos戥u tags
由于单词可以有多个标记,因此正确标记的确定是 并不总是那么简单。然而,这个实现并不试图推断 语言使用,只需选择词典中的第一个标记。
< Buff行情>>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>
为了使标记器准备好工作,我们需要初始化它。在这 实现加载词典。
< Buff行情>>>> tagger.initialize()
现在我们可以开始摇滚了。
标记化
标记的第一步是将文本标记为术语。
< Buff行情>>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']
虽然大多数标记符忽略标点符号,但我们必须保留它, 因为我们以后需要它来提取术语。我们再来看看 复杂案例:
引用文本
>>> tagger.tokenize('This is a "simple" example.') ['This', 'is', 'a', '"', 'simple', '"', 'example', '.']
>>> tagger.tokenize('"This is a simple example."') ['"', 'This', 'is', 'a', 'simple', 'example', '."']
单词中没有字母。
>>> tagger.tokenize('Parts-Of-Speech') ['Parts-Of-Speech']
>>> tagger.tokenize('amazon.com') ['amazon.com']
>>> tagger.tokenize('Go to amazon.com.') ['Go', 'to', 'amazon.com', '.']
各种标点符号。
>>> tagger.tokenize('Quick, go to amazon.com.') ['Quick', ',', 'go', 'to', 'amazon.com', '.']
>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>
0对错误标点符号的容忍度。
>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>
1所有格结构。
>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>
2数字。
>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>
3日期。
>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>
4
好的,就这样。
标记
下一步是标记。标记分两个阶段完成。在第一次 通过查看词典和规范化的 形式设置为术语本身。在第二阶段,应用一组规则 对每个标记的术语进行标记和规范化调整。
< Buff行情>>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>5
所以,哇,这个决心是死定了。让我们试试复数形式的名词 发生了什么:
< Buff行情>>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>6
到目前为止还不错。让我们再测试几个案例:
< Buff行情>>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>7
>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>8
规则
更正默认名词标记
< Buff行情>
>>> from topia.termextract import tag
>>> tagger = tag.Tagger()
>>> tagger
<Tagger for english>
9
在句子开头确认专有名词。
< Buff行情>
>>> tagger.initialize()
0
确定情态动词之后的动词
< Buff行情>
>>> tagger.initialize()
1
规范化复数形式
< Buff行情>
>>> tagger.initialize()
2
一些不起作用的情况:
< Buff行情>
>>> tagger.initialize()
3
更正默认名词标记
< Buff行情>>>> from topia.termextract import tag >>> tagger = tag.Tagger() >>> tagger <Tagger for english>9
在句子开头确认专有名词。
< Buff行情>>>> tagger.initialize()0
确定情态动词之后的动词
< Buff行情>>>> tagger.initialize()1
规范化复数形式
< Buff行情>>>> tagger.initialize()2
一些不起作用的情况:
< Buff行情>>>> tagger.initialize()3
术语提取
现在我们可以标记文本了,让我们来看看术语提取。
< Buff行情>>>> tagger.initialize()4
如您所见,提取器维护一个标记:
< Buff行情>>>> tagger.initialize()5
创建提取器时,还可以传入标记器以避免频繁出现 标记器初始化:
< Buff行情>>>> tagger.initialize()6
让我们获取简单文本的术语。
< Buff行情>>>> tagger.initialize()7
我们没有条件。因为在默认情况下 如果术语由单个单词组成,则必须检测该术语。
提取器维护一个过滤器组件。让我们把琐碎的 允许过滤器,它只返回提取器建议的所有内容:
< Buff行情>>>> tagger.initialize()8
但是让我们再看看默认的过滤器,因为它低点调整其 参数:
< Buff行情>>>> tagger.initialize()9
现在让我们来看看多词术语。多词名词和 在文本中,专有名称只出现一次或两次。但它们通常是伟大的 条款!为了处理这种情况,"力量"的概念是 介绍。目前的优势只是 术语。默认情况下,将选择强度大于1的所有术语 无论发生多少次。
< Buff行情>>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']0
一个exmaple-一篇新闻文章
本文档提供了一个提取bbc术语的简单示例 文章自2009年5月29日起。我们将使用几个术语提取工具来 比较结果。
< Buff行情>>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']1
雅虎关键词提取程序
Yahoo提供了一个服务,它使用 它庞大的搜索数据库。
http://developer.yahoo.com/search/content/v1/termextraction.html
如您所见,结果非常好:
>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']2
不幸的是,该服务每24小时只允许5000个请求。还有,那里 术语上没有强度指标。
treetagger
一种用语言学来标记文本的词性标记器。输出如下:
>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']3
如你所见,Treetagger的身份很好,但是 输出将需要一些分析来产生一组有用的术语。此外, Treetagger不可免费用于商业用途。
托皮亚术语提取器
topia的术语提取器试图在pos之间产生结果 像treetagger和yahoo关键字提取这样的标记。
因为我们只对名词感兴趣,一个非常简单的词性标注算法可以 部署,这将在大多数情况下提供良好的结果。然后我们使用 一些简单的统计和语言学产生了 内容的条款。
< Buff行情>>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']4
让我们先看看标记器的结果:
< Buff行情>>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']5
现在让我们应用提取器。
< Buff行情>>>> tagger.tokenize('This is a simple example.') ['This', 'is', 'a', 'simple', 'example', '.']6
更改
1.1.0(2009-06-29)
- 对字典进行了一些改进,以改进实际情况。
1.0.0(2009-05-30)
-
初始释放
- 使用现有词汇和非常简单的词性标注 语言规则。
- 基于发生率和术语强度的术语提取。