參考資料:
在我們做文字處理的時候,經常需要對兩篇文件是否相似做處理或者根據輸入的文件,找出最相似的文件。
gensim提供了這樣的工具,具體的處理思路如下,對於中文文字的比較,先需要做分詞處理,根據分詞的結果生成乙個字典,然後再根據字典把原文件轉化成向量。然後去訓練相似度。
import gensim
import jieba
# 訓練樣本
from gensim import corpora
from gensim.similarities import similarity
# fin = open("questions.txt",encoding='utf8').read().strip(' ') #strip()取出首位空格
#jieba.load_userdict("userdict.txt")
#stopwords = set(open('stopwords.txt',encoding='utf8').read().strip('\n').split('\n')) #讀入停用詞
raw_documents = [
'0無償居間介紹買賣毒品的行為應如何定性',
'1吸毒男動態持有大量毒品的行為該如何認定',
'2如何區分是非法種植毒品原植物罪還是非法製造毒品罪',
'4將自己吸食的毒品原價轉讓給朋友吸食的行為該如何認定',
'5為獲報酬幫人購買毒品的行為該如何認定',
'6毒販出獄後再次夠買毒品途中被抓的行為認定',
'7虛誇毒品功效勸人吸食毒品的行為該如何認定',
'8妻子下落不明丈夫又與他人登記結婚是否為無效婚姻',
'9一方未簽字辦理的結婚登記是否有效',
'10夫妻雙方2023年按農村習俗舉辦婚禮沒有結婚證 一方可否起訴離婚',
'11結婚前對方父母出資購買的住房寫我們二人的名字有效嗎',
'12身份證被別人冒用無法登記結婚怎麼辦?',
'13同居後又與他人登記結婚是否構成重婚罪',
'14未辦登記只舉辦結婚儀式可起訴離婚嗎',
'15同居多年未辦理結婚登記,是否可以向法院起訴要求離婚'
]corpora_documents =
for item_text in raw_documents:
item_str = jieba.lcut(item_text)
print(item_str)
print(corpora_documents)
# 生成字典和向量語料
dictionary = corpora.dictionary(corpora_documents)
corpus = [dictionary.doc2bow(text) for text in corpora_documents]
#num_features代表生成的向量的維數(根據詞袋的大小來定)
similarity = similarity('-similarity-index', corpus, num_features=400)
test_data_1 = '你好,我想問一下我想離婚他不想離,孩子他說不要,是六個月就自動生效離婚'
test_cut_raw_1 = jieba.lcut(test_data_1)
print(test_cut_raw_1)
test_corpus_1 = dictionary.doc2bow(test_cut_raw_1)
similarity.num_best = 5
print(similarity[test_corpus_1]) # 返回最相似的樣本材料,(index_of_document, similarity) tuples
print('################################')
test_data_2 = '家人因涉嫌運輸毒品被抓,她只是去朋友家探望朋友的,結果就被抓了,還在朋友家收出毒品,可家人的身上和行李中都沒有。現在已經拘留10多天了,請問會被判刑嗎'
test_cut_raw_2 = jieba.lcut(test_data_2)
print(test_cut_raw_2)
test_corpus_2 = dictionary.doc2bow(test_cut_raw_2)
similarity.num_best = 5
print(similarity[test_corpus_2]) # 返回最相似的樣本材料,(index_of_document, similarity) tuples
margin,padding之間的比較
box1,box2 box2 html box1 box2 複製 同上,box1,box2增加浮動屬性 box1,box2 box1 box2 html box1 box2 複製 box2的margin left增加到100px box1 box2 html box1 box1 tdtnzdbfth...
POP,AOP,OOP之間的比較
面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。面向過程側重整個問題的解決步驟,著眼區域性或者具體。物件導向側重具體的功能,讓某個物件具有這樣的功能。更加側重於整體。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步...
函式指標之間的比較
因為某種原因 threaded red black tree c warpper 需要比較兩個函式指標是否相等。但是,這麼貌似很簡單的需求卻得不到滿足。下表,是在visual c 2008 中,同乙個函式通過不同途徑得到的指標 key comp 0x0041158c febird trb compa...