nltk 日本语语料库阅读器不返回正确格式化的(单词,标签)元组,

wrrgggsh  于 5个月前  发布在  其他
关注(0)|答案(6)|浏览(45)

对于这些语料库的词性标注仍然存在问题。今天下午,我加载了JEITA,并调用了jeita.tagged_words()。问题在于JEITA中每个元组的后半部分不包含一个容易与词性标注器进行测试的标签。每个元组的后半部分都包含书写信息(语料库中的每个单词都有一个日语音节表的拼写)和标签信息,因此一个被标记为名词的单词不会与另一个被标记为名词的单词具有相同的标签。这在将标注器与语料库进行测试时导致了很多问题。
打开其中一个.chasen文件,你就会明白我的意思。这是jeita.zip文件中a0010.chasen的第6行。
出る デル 出る 動詞-自立 一段 基本形
这里有四个(或者可能是五个)元素。前三个是表示单词/deru/的不同书写方式,最后一个是标签(动词、及物、第一组、原形)。
所以我写了这个循环:
for sent in tagged_sents:
for(word, tag) in sent:
print(word)
print(tag)
以下是一些示例输出:
出る
デル 出る 動詞-自立 一段 基本形
如你所见,标签包含了两种形式的书写方式,这使得事情变得复杂。
(另外,顺便说一下,如果我们能有一个“简单”的词性标注版本的这些文件,不包括一些额外的类别,如“原形”或动词属于哪个组(ichidan/godan),因为我认为很多解析器对这些并不太关心,但这样做可能需要日本流利人士的帮助。)
我可以再次使用KNBC(NLTK中包含的其他日语语料库)进行检查,但我上次检查时它甚至有更奇怪的事情发生。

0wi1tuuw

0wi1tuuw1#

实际上,动词-自立一段基本形标签与来自其他语言的分层词性标签相似,你可以将它们拆分或合并,例如在NTU-MC的第22页上,还有这个:https://www.sketchengine.co.uk/xdocumentation/wiki/tagsets/jpwac。这两种书写形式实际上是很好的,因为它们提供了额外的信息。可能NLTK API需要做一些更多的工作来拆分它们,但语料库中的信息是好的,我们不应该删除它们。

在JEITA的情况下,这是一个“形态学”标记的语料库,所以它与我们在欧洲语言中构思的词性标记语料库有所不同。Masato Hagiwara对此有一个很好的博客文章:http://lilyx.net/nltk-japanese-corpus/

k4emjkb1

k4emjkb12#

我仍然认为将书写信息作为词性标注的一部分是错误的。

nnvyjq4y

nnvyjq4y3#

同意API应该改进。也许在标签上的namedtuple会是一个更好的接口:

for word, tag in sent:
    print tag.form1 # デル
    print tag.form2 # 出る
    print tag.coarse_pos # 動詞-自立
    print tag.fine_pos # 動詞-自立 一段 基本形
dsekswqp

dsekswqp4#

这对我来说看起来好多了。

5gfr0r5j

5gfr0r5j5#

I agree with @brendanpatrickmurphy that it's confusing from an NLTK perspective to mix orthographic information in with the POS tag.
It seems like the word form flexibility is similar to some corpora which provide lemmas. How is this handled in other NLTK corpora? The corpus readers I'm familiar with include:

  • SemCor: semcor.tagged_chunks(tag='pos') vs. semcor.tagged_chunks(tag='sense') . The latter returns a WordNet Lemma object as the tag.
  • CHILDESCorpusReader : words() , tagged_words() , etc. have a boolean stem argument.

So it might make sense to have arguments indicating the type of POS and/or word-form desired: e.g., tagged_words(form='form1', pos='fine') .

u2nhd7ah

u2nhd7ah6#

一个可能更好的命名方案是:

$x_{1a}0b_{1x}$

注意,只有屈折词有变形/屈折形式。

相关问题