NLTK 使用语料库标记西班牙语单词

2024-03-04

我正在尝试学习如何使用 NLTK 标记西班牙语单词。

来自NLTK书 http://nltk.org/book/ch05.html,使用它们的示例来标记英语单词非常容易。因为我对 nltk 和所有语言处理都很陌生,所以我对如何进行感到非常困惑。

我已经下载了cess_esp语料库。有没有办法指定一个语料库nltk.pos_tag。我看了看pos_tag文档,但没有看到任何表明我可以的东西。我觉得我错过了一些关键概念。我是否必须在 cess_esp 语料库中手动标记文本中的单词? (手动我的意思是标记我的句子并在语料库中运行它)或者我完全偏离了目标。谢谢


首先你需要从语料库中读取标记的句子。NLTK 提供了一个很好的界面,不用担心来自不同语料库的不同格式;您可以简单地导入语料库,使用语料库对象函数来访问数据。看http://nltk.googlecode.com/svn/trunk/nltk_data/index.xml http://nltk.googlecode.com/svn/trunk/nltk_data/index.xml .

那么你必须选择您选择的标注器并训练标注器。还有更多奇特的选项,但您可以从 N-gram 标记器开始。

然后你可以使用标注器来标注你想要的句子。这是一个示例代码:

from nltk.corpus import cess_esp as cess
from nltk import UnigramTagger as ut
from nltk import BigramTagger as bt

# Read the corpus into a list, 
# each entry in the list is one sentence.
cess_sents = cess.tagged_sents()

# Train the unigram tagger
uni_tag = ut(cess_sents)

sentence = "Hola , esta foo bar ."

# Tagger reads a list of tokens.
uni_tag.tag(sentence.split(" "))

# Split corpus into training and testing set.
train = int(len(cess_sents)*90/100) # 90%

# Train a bigram tagger with only training data.
bi_tag = bt(cess_sents[:train])

# Evaluates on testing data remaining 10%
bi_tag.evaluate(cess_sents[train+1:])

# Using the tagger.
bi_tag.tag(sentence.split(" "))

在大型语料库上训练标注器可能需要花费大量时间。将经过训练的标注器保存在文件中以供以后重复使用,而不是每次需要时都训练标注器。

请看存储标签部分在http://nltk.googlecode.com/svn/trunk/doc/book/ch05.html http://nltk.googlecode.com/svn/trunk/doc/book/ch05.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NLTK 使用语料库标记西班牙语单词 的相关文章

随机推荐