具有空间的自定义POS标签



好吧,现在我有一个代码来使用 nltk 进行自定义标记。我使用 NLTK 的 POS 标记器作为带有三元组标记器的退避,在那里我使用自定义标记训练自己的标记句子。这工作得很好,但我希望能够使用 spacy 的 POS 标记器做同样的事情。有没有办法做到这一点?

这是我的代码:

import string
import nltk
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords
import nltk.tag, nltk.data
    tagger = nltk.TrigramTagger(train_sents, backoff=nltk.data.load(nltk.tag._POS_TAGGER))
    def tagSentence(sentence):
        # Method to tag sentence according to  the tagger that is trained.
        sentence = sentence.lower()
        tokens = nltk.word_tokenize(sentence)
        filtered_words = [w for w in tokens if not w in stopwords.words('english')]
        " ".join(filtered_words)
        return tagger.tag(filtered_words)
from spacy.en import English
oNlp = English()
oDoc = oNlp(sUnicodeInputText)
loTokens = [o for o in oDoc]

此处loTokens包含 spacy 提取的所有令牌的列表。 每个令牌都有可以使用的属性。 若要获取 POS,请使用 .pos_ 属性。 例如,要查看元组中与其关联的所有词形还原令牌名称和 POS 标记,请执行以下操作:

print([ (o.lemma_, o.pos_) for o in loTokens ])

空间文档很棒。 看看吧。

最新更新