1樓:Dacian
假設有乙個字串s,那麼該字串的N-Grams就表示按長度 N 切分原詞得到的詞段,也就是s中所有長度為 N 的子字串。
設想如果有兩個字串,然後分別求它們的N-Grams,那麼就可以從它們的共有子串的數量這個角度去定義兩個字串間的N-Gram距離。
舉個例子(N=2):
China:Ch,hi,in,na
Chinese:Ch,hi,in,ne,es,se
發現有三個詞段相同,所以兩個字串的N-Grams距離為3。
China有3/4的可能性與Chinese表達相同的意思,但事實並非如此。
問題就在於,原來的演算法忽視了每個字串本身的長度,無法精準地表示兩個字串的相似度。
引出新的N-Grams計算方法:
是第乙個字串的長度,這裡為4;
是第二個字串的長度,這裡為6;
N-Grams = 4+6 - 2 * 3 = 4
由新的計算方法可知,當兩個詞完全相同時,N-Grams為0(最優結果)。
字串之間的距離(N-Grams)越小,它們就越接近。
Python例項:
# Import CountVectorizer
from
sklearn.feature_extraction.text
import
CountVectorizer
# Instantiate a trigram vectorizer
cv_trigram_vec
=CountVectorizer
(max_features
=100
,stop_words
='english'
,ngram_range=(
3,3))
cv_trigram
=cv_trigram_vec
.fit_transform
(speech_df
['text'
])# Create a DataFrame of the features
cv_tri_df=pd
.DataFrame
(cv_trigram
.toarray
(),columns
=cv_trigram_vec
.get_feature_names
()).
add_prefix
('Counts_'
)# Print the top 5 words in the sorted output
(cv_tri_df
.sum().
sort_values
(ascending
=False).
head(2
))#Counts_constitution united states 20
#Counts_people united states13
針灸的原理是什麼?
陳蒙 這件事情大家還在研究,也沒有個定論。其他幾個常見的沒有定論的問題是 經絡是什麼物質?三焦到底是什麼?針灸是有效的而不是安慰劑是已經被研究出來的內容。針灸可以釋放生物電,根據這一特點設計出了電針,用來加強刺激和針感。至於針感到底是什麼,包括針刺補瀉,寒熱溫涼等到底是怎麼起作用的,這都是目前還沒有...
星座的原理是什麼!?
突然想到的原理 12個星座對應著12個時間段出生的 出生時間相近,意味著父母懷孕時間相差不多 出生前經歷的四季變化等很多的東西也都是類似的這些相同的東西,導致了相同的性格等等 女神和女神經 巴納姆效應 巴納姆效應 Barnum effect 是1948年由心理學家伯特倫 福勒通過試驗證明的一種心理學...
泛音 的原理是什麼?
080617 先上圖,最為直觀 撥動一下弦的中點,弦的振動情況如上圖所示 圖為弦振動模擬,容易看出弦有整體的上下振動,相應的頻率稱為 基頻 仔細觀察,弦的區域性還存在一些細微的振動,其頻率高於基頻 在弦的端點附近能明顯看到這種振動 泛音就是由高於基頻的振動產生。 周宇航 想象一下你有一輛自行車。你踹...