[パズルで学ぶ自然言語処理]#1 NLPテクノロジーをすばやく閲覧

9495 ワード

1-1.馬球


馬の取っ手



コイン枚

import spacy
nlp = spacy.load('en')
text = "Mary, don't slap the green witch"
print([str(token) for token in nlp(text.lower())])
# ['mary', ',', 'do', "n't", 'slap', 'the', 'green', 'witch']

from nltk.tokenize import TweetTokenizer
tweet = u"Snow White and the Seven Degrees #MakeAMovieCold@midnight:-)"
tokenizer = TweetTokenizer()
print(tokenizer.tokenize(tweet.lower()))
# ['snow', 'white', 'and', 'the', 'seven', 'degrees', '#makeamoviecold', '@midnight', ':-)']

を選択します。


馬の群れに現れる固有のコイン.フレーズ内のすべてのタイプの集合は、語彙辞書または語彙辞書です.

1-2.unigram,vigram,trigram,…n.グラム


テキスト内の固定長の連続タグシーケンス
def n_grams(text, n):
	'''
    takes tokens or text, returns a list of n-grams
    '''
    return [text[i:i+n] for i in range(len(text)-n+1)]
    
cleaned = ['mary', ',', "n't", 'slap', 'green', 'witch', '.']
print(n_grams(cleaned,3))
# [['mary', ',', "n't"], 
# [',', "n't", 'slap'], 
# ["n't", 'slap', 'green'], 
# ['slap', 'green', 'witch'], 
# ['green', 'witch', '.']]

文字n-gram


一部の単語subword自体が有用な情報を伝達すると、文字n-gramを生成することができる.

1-3.語幹


タイトル語の引数は語の基本形式である.
語幹抽出stemmingは,タイトル語抽出に代わる略語手法である.
単語「ガチョウ」をタイトルに抽出すると「goose」が生成され、語幹を抽出すると「gees」が生成されます.
import spacy
nlp = spacy.load('en')
doc = nlp(u"he was running late")
for token in doc:
  print('{} --> {}'.format(token, token.lemma_))
# he --> -PRON-
# was --> be
# running --> run
# late --> late

1-4.文章と文書を分類する


TFとTF-IDFは,文書や文などの長いテキストセットを分類するのに有用であることを示す.
トピックラベルの割り当て、コメントの感性予測、スパムフィルタリング、言語認識、電子メール分類などの作業は、学習を指導するドキュメント分類の問題に基づいています.

1-5.分類語句:タグ語類


ドキュメントにラベルを割り当てる概念は、単語またはタグに拡張できます.
単語分類作業の例としては,語類partofspeech,タグラベルがある.
import spacy
nlp = spacy.load('en')
doc = nlp(u"Mary slapped the green witch.")
for token in doc:
  print('{} - {}'.format(token, token.pos_))
# Mary - PROPN
# slapped - VERB
# the - DET
# green - ADJ
# witch - NOUN
# . - PUNCT

1-6.ブロックと識別オブジェクト名


ブロックchinkingまたは部分文法解析浅層解析の目的は,名詞,動詞,形容詞などの文法要素からなる高レベル単位を導出することである.
import spacy
nlp = spacy.load('en')
doc = nlp(u"Mary slapped the green witch.")
for chunk in doc.noun_chunks:
  print('{} - {}'.format(chunk, chunk.label_))
# Mary - NP
# the green witch - NP
個体名entityは、人間、場所、会社、薬名などの実際の世界の概念を表す文字列です.

1-7.ぶんこうぞう


構文解析コンポーネント解析、依存構文解析依存解析の構成


1-8.語義論


単語には1つ以上の意味があります.