python - NLTK 使用语料库标记西类牙语单词

标签 python nltk

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

来自nltk book , 使用他们的示例很容易标记英文单词。因为我是 nltk 和所有语言处理的新手,所以我对如何进行感到很困惑。

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

最佳答案

首先,您需要从语料库中读取带标签的句子。NLTK 提供了一个很好的界面,您无需为来自不同语料库的不同格式而烦恼;您可以简单地导入语料库,使用语料库对象函数来访问数据。参见 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 中的Storing Taggers 部分

关于python - NLTK 使用语料库标记西类牙语单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732465/

相关文章:

python - 将模型范围的帮助文本添加到 django 模型的管理表单

python - 如何在不发送 self 的情况下从内部类更改外部类?

python - 如何以像素为单位获取终端大小或字体大小?

python :getting the count for the adjectives in a string

python - 在python中递归地从树中删除项目

python - "Edit with IDLE"选项缺少 Python 3.6

python - Python 的 talib.ATR 方法有错误吗?

python - 通过语法检查(Python)从一组可能性中选择最流畅的文本

nlp - 使用 NLP 的实体识别和情感分析

python - 如何使用 scikit learn 向量化标记的二元组?