101
правка
Изменения
→Частеречная разметка
Благодаря частому использованию POS-тэгирования на практике, существует много встроенных библиотек с готовыми реализациями. Например, NLTK<ref>[https://www.nltk.org/ NLTK]</ref>, scikit-learn<ref>[https://scikit-learn.org scikit-learn]</ref>, HunPOS<ref>[https://code.google.com/archive/p/hunpos/ HunPOS]</ref>, Standford POS Tagger<ref>[https://nlp.stanford.edu/software/tagger.shtml Stanford]</ref> и другие. Примеры использования некоторых библиотек:
* NLTK(''основанный на правилах''):
import nltk
from nltk.tokenize import word_tokenize
nltk.pos_tag(text)
'''output:''' [('Hello', 'NNP'), ('welcome', 'NN'), ('to', 'TO'), ('the', 'DT'), ('world', 'NN'), ('of', 'IN'), ('to', 'TO'), ('learn', 'VB'), ('Categorizing', 'NNP'), ('and', 'CC'), ('POS', 'NNP'), ('Tagging', 'NNP'), ('with', 'IN'), ('NLTK', 'NNP'), ('and', 'CC'), ('Python', 'NNP')]
* HunPOSspaCy (''с использованием скрытой марковской модели''): from os.path import expanduserspacy home nlp = expanduserspacy.load("~en_core_web_sm") from nltk.tag.hunpos import HunposTagger _path_to_bin doc = home + '/hunpos-1.0-linux/hunpos-tag' _path_to_model = home + '/hunpos-1.0-linux/en_wsj.model' ht = HunposTaggernlp(path_to_model=_path_to_model, path_to_bin=_path_to_bin) text = "The quick brown fox jumps over the lazy dog") htfor token in doc: print((token.tag(text, token.split(pos_))
'''output:''' [('The', 'DT'), ('quick', 'JJ'), ('brown', 'JJ'), ('fox', 'NN'), ('jumps', 'NNS'), ('over', 'IN'), ('the', 'DT'), ('lazy', 'JJ'), ('dog', 'NN')]
* Stanford POS tagger