3

さて、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)
4

1 に答える 1

0
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 ])

スペーシーのドキュメントは素晴らしいです。見てみな。

于 2016-06-15T09:26:23.797 に答える