学习笔记CB002:词干提取、词性标注、中文切词、文档分类
2018-02-13 00:00
489 查看
英文词干提取器,import nltk,porter = nltk.PorterStemmer(),porter.stem('lying') 。
词性标注器,pos_tag处理词序列,根据句子动态判断,import nltk,text = nltk.word_tokenize("And now for something completely different”),nltk.pos_tag(text) 。CC 连接词,RB 副词,IN 介词,NN 名次,JJ 形容词。
标注自定义词性标注语料库,tagged_token = nltk.tag.str2tuple('fly/NN') 。字符串转成二元组。布朗语料库标注 nltk.corpus.brown.tagged_words() 。
nltk中文语料库,nltk.download()。下载 Corpora sinica_treebank,台湾中国研究院。
jieba切词,https://github.com/fxsjy/jieba,自定义语料中文切词,自动词性标注。
词性自动标注。默认标注器 DefaultTagger,标注为频率最高词性。
正则表达式标注器,RegexpTagge,满足特定正则表达式词性。
查询标注器,多个最频繁词和词性,查找语料库,匹配标注,剩余词用默认标注器(回退)。
一元标注,已标注语料库训练,模型标注新语料。
二元标注、多元标注,一元标注 UnigramTagger 只考虑当前词,不考虑上下文。二元标注器 BigramTagger 考虑前面词。三元标注 TrigramTagger。
组合标注器,提高精度和覆盖率,多种标注器组合。
标注器存储,训练好持久化,存储硬盘。加载。
机器学习,训练模型,已知数据统计学习;使用模型,统计学习模型计算未知数据。有监督,训练样本数据有确定判断,断定新数据。无监督,训练样本数据没有判断,自发生成结论。最难是选算法。
贝叶斯,概率论,随机事件条件概率。公式:P(B|A)=P(A|B)P(B)/P(A)。已知P(A|B)、P(A)、P(B),计算P(B|A)。贝叶斯分类器:
分类,最重要知道哪些特征最能反映分类特点,特征选取。文档分类,最能代表分类词。特征提取,找到最优信息量特征:
词性标注,上下文语境文本分类。句子分割,标点符号分类,选取单独句子标识符合并链表、数据特征。识别对话行为,问候、问题、回答、断言、说明。识别文字蕴含,句子能否得出另一句子结论,真假标签。
参考资料:
http://www.shareditor.com/blogshow?blogId=67
http://www.shareditor.com/blogshow?blogId=69
https://www.jianshu.com/p/6e5ace051c1e
《Python 自然语言处理》
欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi
词性标注器,pos_tag处理词序列,根据句子动态判断,import nltk,text = nltk.word_tokenize("And now for something completely different”),nltk.pos_tag(text) 。CC 连接词,RB 副词,IN 介词,NN 名次,JJ 形容词。
标注自定义词性标注语料库,tagged_token = nltk.tag.str2tuple('fly/NN') 。字符串转成二元组。布朗语料库标注 nltk.corpus.brown.tagged_words() 。
nltk中文语料库,nltk.download()。下载 Corpora sinica_treebank,台湾中国研究院。
# coding:utf-8 import sys import importlib importlib.reload(sys) import nltk for word in nltk.corpus.sinica_treebank.tagged_words(): print(word[0], word[1])
jieba切词,https://github.com/fxsjy/jieba,自定义语料中文切词,自动词性标注。
词性自动标注。默认标注器 DefaultTagger,标注为频率最高词性。
# coding:utf-8 import sys import importlib importlib.reload(sys) import nltk default_tagger = nltk.DefaultTagger('NN') raw = '我 好 想 你' tokens = nltk.word_tokenize(raw) tags = default_tagger.tag(tokens) print(tags)
正则表达式标注器,RegexpTagge,满足特定正则表达式词性。
# coding:utf-8 import sys import importlib importlib.reload(sys) import nltk pattern = [(r'.*们$','PRO')] tagger = nltk.RegexpTagger(pattern) print(tagger.tag(nltk.word_tokenize('我们 一起 去 你们 和 他们 去过 的 地方')))
查询标注器,多个最频繁词和词性,查找语料库,匹配标注,剩余词用默认标注器(回退)。
一元标注,已标注语料库训练,模型标注新语料。
# coding:utf-8 import sys import importlib importlib.reload(sys) import nltk tagged_sents = [[(u'我', u'PRO'), (u'小兔', u'NN')]] unigram_tagger = nltk.UnigramTagger(tagged_sents) sents = [[u'我', u'你', u'小兔']] # brown_tagged_sents = nltk.corpus.brown.tagged_sents(categories='news') # unigram_tagger = nltk.UnigramTagger(brown_tagged_sents) # sents = nltk.corpus.brown.sents(categories='news') tags = unigram_tagger.tag(sents[0]) print(tags)
二元标注、多元标注,一元标注 UnigramTagger 只考虑当前词,不考虑上下文。二元标注器 BigramTagger 考虑前面词。三元标注 TrigramTagger。
组合标注器,提高精度和覆盖率,多种标注器组合。
标注器存储,训练好持久化,存储硬盘。加载。
# coding:utf-8 import sys import importlib importlib.reload(sys) import nltk train_sents = [[(u'我', u'PRO'), (u'小兔', u'NN')]] t0 = nltk.DefaultTagger('NN') t1 = nltk.UnigramTagger(train_sents, backoff=t0) t2 = nltk.BigramTagger(train_sents, backoff=t1) sents = [[u'我', u'你', u'小兔']] tags = t2.tag(sents[0]) print(tags) from pickle import dump print(t2) output = open('t2.pkl', 'wb') dump(t2, output, -1) output.close() from pickle import load input = open('t2.pkl', 'rb') tagger = load(input) input.close() print(tagger)
机器学习,训练模型,已知数据统计学习;使用模型,统计学习模型计算未知数据。有监督,训练样本数据有确定判断,断定新数据。无监督,训练样本数据没有判断,自发生成结论。最难是选算法。
贝叶斯,概率论,随机事件条件概率。公式:P(B|A)=P(A|B)P(B)/P(A)。已知P(A|B)、P(A)、P(B),计算P(B|A)。贝叶斯分类器:
# coding:utf-8 import sys import importlib importlib.reload(sys) import nltk my_train_set = [ ({'feature1':u'a'},'1'), ({'feature1':u'a'},'2'), ({'feature1':u'a'},'3'), ({'feature1':u'a'},'3'), ({'feature1':u'b'},'2'), ({'feature1':u'b'},'2'), ({'feature1':u'b'},'2'), ({'feature1':u'b'},'2'), ({'feature1':u'b'},'2'), ({'feature1':u'b'},'2'), ] classifier = nltk.NaiveBayesClassifier.train(my_train_set) print(classifier.classify({'feature1':u'a'})) print(classifier.classify({'feature1':u'b'}))
分类,最重要知道哪些特征最能反映分类特点,特征选取。文档分类,最能代表分类词。特征提取,找到最优信息量特征:
# coding:utf-8 import sys import importlib importlib.reload(sys) import nltk from nltk.corpus import movie_reviews import random documents =[(list(movie_reviews.words(fileid)),category)for category in movie_reviews.categories()for fileid in movie_reviews.fileids(category)] random.shuffle(documents) all_words = nltk.FreqDist(w.lower() for w in movie_reviews.words()) word_features = [word for (word, freq) in all_words.most_common(2000)] def document_features(document): document_words = set(document) features = {} for word in word_features: features['contains(%s)' % word] = (word in document_words) return features featuresets = [(document_features(d), c) for (d,c) in documents] # classifier = nltk.NaiveBayesClassifier.train(featuresets) # classifier.classify(document_features(d)) train_set, test_set = featuresets[100:], featuresets[:100] classifier = nltk.NaiveBayesClassifier.train(train_set) print(nltk.classify.accuracy(classifier, test_set)) classifier.show_most_informative_features(5)
词性标注,上下文语境文本分类。句子分割,标点符号分类,选取单独句子标识符合并链表、数据特征。识别对话行为,问候、问题、回答、断言、说明。识别文字蕴含,句子能否得出另一句子结论,真假标签。
参考资料:
http://www.shareditor.com/blogshow?blogId=67
http://www.shareditor.com/blogshow?blogId=69
https://www.jianshu.com/p/6e5ace051c1e
《Python 自然语言处理》
欢迎推荐上海机器学习工作机会,我的微信:qingxingfengzi
相关文章推荐
- 学习笔记CB002:词干提取、词性标注、中文切词、文档分类
- 聊天机器人 ,中文翻译,繁简 ,关键词提取,主题提取,摘要提取 ,命名体识别,分词 ,情感分析,正负类分析 ,近义词,同义词,句子相似性,聚类,监督,无监督,词性标注,词向量句子向量
- NLP自然语言处理 jieba中文分词,关键词提取,词性标注,并行分词,起止位置,文本挖掘,NLP WordEmbedding的概念和实现
- Spark 中文文档分类(一) IKAnalyzer对文档进行分类
- python进行中文分词、词性标注、词频统计
- SnowNLP:•中文分词•词性标准•提取文本摘要,•提取文本关键词,•转换成拼音•繁体转简体的 处理中文文本的Python3 类库
- 中文命名实体识别之学习笔记一(词性标注)
- arcgis 进行中文分类标注相关说明
- xpdf提取中文PDF文档
- ICTCLAS 中科院分词系统 代码 注释 中文分词 词性标注
- fudannlp - 开源中文自然语言处理工具包|中文分词|词性标注|依存句法分析|指代消解 - Google Project Hosting
- 哈工大ltp,分词,词性标注,命名实体识别技术的特征提取
- 用scikit-learn和jieba支持中文文本特征提取和分类的测例
- 【Scikit-Learn 中文文档】特征提取 - 数据集转换 - 用户指南 | ApacheCN
- SCWS中文分词,词典词性标注详解
- 中文词性标注以及命名实体识别
- 【Scikit-Learn 中文文档】特征提取 - 数据集转换 - 用户指南 | ApacheCN
- 中文词性标注
- 基于MaxEnt的中文词性标注模型实现
- 中文词性标注解释一览表