和北大处理工具差不多
SPacy商业开源软件,速度最快,但是不支持中文
文本的向量表示 特征提取。
TF-IDF、word2vec。Bag of Words BOW 磁带模型
pip install gensim
spacy.load('en') 的一个bug
python -m spacy install en -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
然后load en_core_web_sm 安装时最好也用这个代替en
其它代码:
import thulac
import codecs
def ReadFile(filePath,encoding="utf-8"):
with codecs.open(filePath,"r",encoding) as f:
return f.read()
def WriteFile(filePath,content,encoding="gbk"):
with codecs.open(filePath,"w",encoding) as f:
f.write(content)
def UTF8_2_GBK(src,dst):
content=ReadFile(src,encoding="utf-8")
WriteFile(dst,content,encoding="gbk")
thu1 = thulac.thulac(seg_only=True) #默认模式
text = thu1.cut("我爱北京天安门", text=True) #进行一句话分词
print(text)
#2文件分词
thul_f=thulac.thulac()
UTF8_2_GBK("input.txt","input2.txt")
UTF8_2_GBK("output.txt","output2.txt")
thul_f.cut_f("input2.txt","output2.txt")
print("文件分词成功!")
# -*- coding:utf-8 -*-
from gensim import corpora
from gensim import models
import jieba
raw_documents = [
'0无偿居间介绍买卖毒品的行为应如何定性',
'1吸毒男动态持有大量毒品的行为该如何认定',
'2如何区分是非法种植毒品原植物罪还是非法制造毒品罪',
'3为毒贩贩卖毒品提供帮助构成贩卖毒品罪',
'4将自己吸食的毒品原价转让给朋友吸食的行为该如何认定',
'5为获报酬帮人购买毒品的行为该如何认定',
'6毒贩出狱后再次够买毒品途中被抓的行为认定',
'7虚夸毒品功效劝人吸食毒品的行为该如何认定',
'8妻子下落不明丈夫又与他人登记结婚是否为无效婚姻',
'9一方未签字办理的结婚登记是否有效',
'10夫妻双方1990年按农村习俗举办婚礼没有结婚证 一方可否起诉离婚',
'11结婚前对方父母出资购买的住房写我们二人的名字有效吗',
'12身份证被别人冒用无法登记结婚怎么办?',
'13同居后又与他人登记结婚是否构成重婚罪',
'14未办登记只举办结婚仪式可起诉离婚吗',
'15同居多年未办理结婚登记,是否可以向法院起诉要求离婚'
]
texts=[[word for word in jieba.cut(document,cut_all=False)]for document in raw_documents]
# texts=[]
# for document in raw_documents:
# for word in jieba.cut(document):
# texts.append(word)
# print(texts)
# 生成词典
dictionary=corpora.Dictionary(texts)
print(dictionary)
# 生成语料
corpus=[dictionary.doc2bow(text) for text in texts]
print(corpus)
#生成tf-idf模型
tfidf_model=models.TfidfModel(corpus)
corpus_tfidf=tfidf_model[corpus]
for item in corpus_tfidf:
print(item)
# -*- coding:utf-8 -*-
import spacy
nlp=spacy.load('en')#不支持中文
text="I love coco! 5G is comming."
test_words=nlp(text)
print(8*"*","分词",8*"*")
for word in test_words:
print(word)
#2 命名实体识别
text="It is a beautiful flower!"
#
# test_words=nlp(text)
# for ent in test_words.ents:
# print(ent,ent.label_,ent.label)
nlp = spacy.load("en_core_web_sm")
doc = nlp(u"Apple is looking at buying U.K. startup for $1 billion")
for ent in doc.ents:
print(ent.text, ent.start_char, ent.end_char, ent.label_)
spacy
