天天看點

基于短文本内容的推薦對于最近做的相關工作,做一個總結分詞方法,調用結巴接口去除幹擾詞

@TOC文本相似性推薦

對于最近做的相關工作,做一個總結

對應的代碼:

import math

import jieba

import jieba.posseg as psg

from gensim import corpora, models,similarities

def get_stopword_list():

# 停用詞表存儲路徑,每一行為一個詞,按行讀取進行加載

# 進行編碼轉換確定比對準确率

stop_word_path = ‘./stopword.txt’

stopword_list = [sw.replace(’\n’, ‘’) for sw in open(stop_word_path,encoding=‘utf-8’).readlines()]

return stopword_list

分詞方法,調用結巴接口

def seg_to_list(sentence, pos=False):

if not pos:

# 不進行詞性标注的分詞方法

seg_list = jieba.cut(sentence)

else:

# 進行詞性标注的分詞方法

seg_list = psg.cut(sentence)

return seg_list

去除幹擾詞

def word_filter(seg_list, pos=False):

stopword_list = get_stopword_list()

filter_list = []

# 根據POS參數選擇是否詞性過濾

## 不進行詞性過濾,則将詞性都标記為n,表示全部保留

for seg in seg_list:

if not pos:

word = seg

flag = ‘n’

else:

word = seg.word

flag = seg.flag

if not flag.startswith(‘n’):

continue

# 過濾停用詞表中的詞,以及長度為<2的詞

if not word in stopword_list and len(word) > 1:

filter_list.append(word)

return filter_list
           

def topk_sort(k,sim):

# topk

y = []

i = 0

for i in range(0, k):

y.append(sim[i])

return y

if name == ‘main’:

Divid_lists=[]

compare_article = []

with open(’./data/convert_text.txt’,‘r’,encoding=‘utf-8’) as f :

i=0

for line in f:

i=i+1

text = line.strip()

pos = False

seg_list = seg_to_list(text, pos)

# print([list for list in seg_list])

filter_list = word_filter(seg_list, pos)

list = [list for list in filter_list]

Divid_lists.append(list)

if i==24:

compare_article.extend(list)

Divid_lists_dictionary = corpora.Dictionary(Divid_lists)  #[(id,單詞)] 有數字有文字
    # print(Divid_lists_dictionary.token2id)
    corpus = [Divid_lists_dictionary.doc2bow(stu) for stu in Divid_lists]
    # print(corpus)

    tfIdf_model = models.TfidfModel(corpus)

    corpus = [Divid_lists_dictionary.doc2bow(stu) for stu in Divid_lists]
    # for tiidf in tfIdf_model[corpus]:
        # print(tiidf)
    compare_article_bow = Divid_lists_dictionary.doc2bow(compare_article)
    # print(compare_article_bow)
    # print(tfIdf_model[compare_article_bow])
    #相似度計算
    index = similarities.SparseMatrixSimilarity(tfIdf_model[corpus],num_features=len(Divid_lists_dictionary.keys()))
    sim = index[tfIdf_model[compare_article_bow]]
    x = sorted(enumerate(sim),key=lambda x:x[1],reverse=True)
    print(x)
    y = topk_sort(5,x)
    print(y[0][0])
           

相關工作

我們對Markdown編輯器進行了一些功能拓展與文法支援,除了标準的Markdown編輯器功能,我們增加了如下幾點新功能,幫助你用它寫部落格:

1.思路的形成:

在做新聞推薦的時候,考慮到全是文本資訊,優先考慮了基于内容的推薦,但是怎樣從文本中提取重要的表征資訊再和傳統餘弦相似結合做一個topN的推薦呢

2.文本的資訊表示:

考慮了文本的TF-IDF的算法

思路:對文檔進行分詞,集合算法,将每個文檔的資訊用TF-IDF的權重向量化表示出來,将已有的文檔做彙總,生成對應的n維矩陣,每當使用者浏覽了一個新聞文檔,就把對應的相似的文檔推薦給使用者,本身是沒有對相似的可靠性做評估,是以還有一個實驗過程。從代碼的時間的複雜度來看,很耗時間。

  1. 全新的界面設計 ,将會帶來全新的寫作體驗;
  2. 在創作中心設定你喜愛的代碼高亮樣式,Markdown 将代碼片顯示選擇的高亮樣式 進行展示;
  3. 增加了 圖檔拖拽 功能,你可以将本地的圖檔直接拖拽到編輯區域直接展示;
  4. 全新的 KaTeX數學公式 文法;
  5. 增加了支援甘特圖的mermaid文法1 功能;
  6. 增加了 多螢幕編輯 Markdown文章功能;
  7. 增加了 焦點寫作模式、預覽模式、簡潔寫作模式、左右區域同步滾輪設定 等功能,功能按鈕位于編輯區域與預覽區域中間;
  8. 增加了 檢查清單 功能。

功能快捷鍵

撤銷:Ctrl/Command + Z

重做:Ctrl/Command + Y

加粗:Ctrl/Command + B

斜體:Ctrl/Command + I

标題:Ctrl/Command + Shift + H

無序清單:Ctrl/Command + Shift + U

有序清單:Ctrl/Command + Shift + O

檢查清單:Ctrl/Command + Shift + C

插入代碼:Ctrl/Command + Shift + K

插傳入連結接:Ctrl/Command + Shift + L

插入圖檔:Ctrl/Command + Shift + G

合理的建立标題,有助于目錄的生成

直接輸入1次#,并按下space後,将生成1級标題。

輸入2次#,并按下space後,将生成2級标題。

以此類推,我們支援6級标題。有助于使用

TOC

文法後生成一個完美的目錄。

如何改變文本的樣式

強調文本 強調文本

加粗文本 加粗文本

标記文本

删除文本

引用文本

H2O is是液體。

210 運算結果是 1024.

插傳入連結接與圖檔

連結: link.

圖檔:

基于短文本内容的推薦對于最近做的相關工作,做一個總結分詞方法,調用結巴接口去除幹擾詞

帶尺寸的圖檔:

基于短文本内容的推薦對于最近做的相關工作,做一個總結分詞方法,調用結巴接口去除幹擾詞

居中的圖檔:

基于短文本内容的推薦對于最近做的相關工作,做一個總結分詞方法,調用結巴接口去除幹擾詞

居中并且帶尺寸的圖檔:

基于短文本内容的推薦對于最近做的相關工作,做一個總結分詞方法,調用結巴接口去除幹擾詞

當然,我們為了讓使用者更加便捷,我們增加了圖檔拖拽功能。

如何插入一段漂亮的代碼片

去部落格設定頁面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的

代碼片

.

// An highlighted block
var foo = 'bar';
           

生成一個适合你的清單

  • 項目
    • 項目
      • 項目
  1. 項目1
  2. 項目2
  3. 項目3
  • 計劃任務
  • 完成任務

建立一個表格

一個簡單的表格是這麼建立的:

項目 Value
電腦 $1600
手機 $12
導管 $1

設定内容居中、居左、居右

使用

:---------:

居中

使用

:----------

居左

使用

----------:

居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标點字元轉換為“智能”印刷标點HTML實體。例如:

TYPE ASCII HTML
Single backticks

'Isn't this fun?'

‘Isn’t this fun?’
Quotes

"Isn't this fun?"

“Isn’t this fun?”
Dashes

-- is en-dash, --- is em-dash

– is en-dash, — is em-dash

建立一個自定義清單

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何建立一個注腳

一個具有注腳的文本。2

注釋也是必不可少的

Markdown将文本轉換為 HTML。

KaTeX數學公式

您可以使用渲染LaTeX數學表達式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通過歐拉積分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t &ThinSpace; . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞​tz−1e−tdt.

你可以找到更多關于的資訊 LaTeX 數學表達式here.

新的甘特圖功能,豐富你的文章

  • 關于 甘特圖 文法,參考 這兒,

UML 圖表

可以使用UML圖表進行渲染。 Mermaid. 例如下面産生的一個序列圖::

這将産生一個流程圖。:

  • 關于 Mermaid 文法,參考 這兒,

FLowchart流程圖

我們依舊會支援flowchart的流程圖:

  • 關于 Flowchart流程圖 文法,參考 這兒.

導出與導入

導出

如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到 文章導出 ,生成一個.md檔案或者.html檔案進行本地儲存。

導入

如果你想加載一篇你寫過的.md檔案,在上方工具欄可以選擇導入功能進行對應擴充名的檔案導入,

繼續你的創作。

  1. mermaid文法說明 ↩︎
  2. 注腳的解釋 ↩︎

繼續閱讀