disambiguation.py
#!/usr/bin/python3
import pymysql
import json
import requests
from similarityen import similarity
deffindcandidates
(entity)
:# 開啟資料庫連線
db = pymysql.connect(host=host, port=
3306
, user=username, passwd=password, db=dbname)
# 使用 cursor() 方法建立乙個游標物件 cursor
cursor = db.cursor(
)# sql 查詢語句
#單一實體消歧
candidates = findcandidates(entity[
'word'])
texts =
for candidate in candidates:
'description'])
try:
indent = similarity(texts, query)
sort =
sorted
(enumerate
(indent)
, key=
lambda x: x[1]
)##b[-1][0] 最大值的原下標
max_index = sort[-1
][0]
except
: max_index =
0try:)
except:)
points = json.dumps(points, indent=4)
return points
similarity.py
# -*- coding:utf-8 -*-
import codecs
import re
from gensim import corpora, models, similarities
from nltk.tokenize import wordpuncttokenizer
defwordtokenizer
(sentence)
: words = wordpuncttokenizer(
).tokenize(sentence)
return words
deftokenization
(text, stopwordpath)
: stop_words = stopwordpath
stopwords = codecs.
open
(stop_words,
'r', encoding=
'utf8'
).readlines(
) stopwords =
[w.strip(
)for w in stopwords]
result =
text = re.sub(
"[-',|.()/?!·;]"
,' '
, text)
.lower(
) words = wordtokenizer(text)
for word in words:
if word not
in stopwords:
return result
defsimilarity
(texts, query, stopwordpath=
'stop.txt'):
corpus =
for text in texts:
) dictionary = corpora.dictionary(corpus)
# 生成特徵字典,為每個出現在語料庫中的單詞分配了乙個獨一無二的整數編號id
doc_bow =
[dictionary.doc2bow(text)
for text in corpus]
# 函式doc2bow() 簡單地對每個不同單詞的出現次數進行了計數,並將單詞轉換為其編號,然後以稀疏向量的形式返回結果。
tfidf = models.tfidfmodel(doc_bow)
# 每乙個特徵的idf值的統計
tfidf_bow = tfidf[doc_bow]
# 計算tfidf
query = tokenization(query, stopwordpath)
query_bow = dictionary.doc2bow(query)
index = similarities.matrixsimilarity(tfidf_bow)
sims = index[query_bow]
return sims
實體消歧簡介
定義 實體消歧的本質在於乙個單詞很可能有多個意思,也就是在不同的上下文中所表達的含義可能不太一樣。簡單實現 首先我們需要準備乙個類似於下面的這種實體庫 id實體名 實體描述 1001 蘋果美國一家高科技公司,經典的產品有iphone手機 1002 蘋果水果的一種,一般產自於 然後當我們拿到text時...
實體消歧,實體識別,實體融合,知識融合概述
實體消歧問題是當下比較熱點的研究問題,國內外的大多熟研究從兩個角度解決實體歧義造成的影響,分別是通過尋求更高質量的特徵和引入外部資源輔助消解。在特徵選取方面,何正焱 2 利用 dnn 深度神經網路 方法,提出了一種文件和實體的相似度為框架的消歧模型 姜麗麗 3 提出了一種基於帶權圖結構的框架來實現人...
實體消岐和實體統一
實體消歧 定義 實體消歧的本質在於乙個單詞很可能有多個意思,也就是在不同的上下文中所表達的含義可能不太一樣。簡單實現 首先我們需要準備乙個類似於下面的這種實體庫 id實體名 實體描述 1001 蘋果美國一家高科技公司,經典的產品有iphone手機 1002 蘋果水果的一種,一般產自於 然後當我們拿到...