中文分詞jieba和fuzzy模糊文本匹配

菜品文本匹配

數(shù)據(jù)準(zhǔn)備


  • 原始數(shù)據(jù):從網(wǎng)上爬蟲得到的菜單數(shù)據(jù)徐紧,包含菜名,單價宽档,銷售量等
  • 目標(biāo):將原始數(shù)據(jù)中的菜名分類尉姨,并劃分菜譜類別(如粵菜、川菜吗冤、西餐等)
  • 輔助:從網(wǎng)上搜索找到菜譜數(shù)據(jù)庫又厉,包含了5000多種菜的標(biāo)準(zhǔn)菜名、菜譜類型椎瘟、做法等覆致,但是需要修正菜譜類型至我們所規(guī)定的類別。

問題點(diǎn)


原始數(shù)據(jù)中的菜名千奇百怪肺蔚,需要跟標(biāo)準(zhǔn)菜名進(jìn)行匹配煌妈,而且一個菜名可能對應(yīng)多個標(biāo)準(zhǔn)菜名,需要找出最相關(guān)的標(biāo)準(zhǔn)菜名宣羊。例如'蝦仁小餛飩'声旺、'大份餛飩'都對應(yīng)了''餛飩'',但是也有可能對應(yīng)'蝦仁炒飯'段只。

<aside>
?? 注意

  1. 文本匹配的方法腮猖,相似性的算法
  2. 先分詞在做相似性評價,可能效果更好
  3. 數(shù)據(jù)量大赞枕,匹配算法不能太慢
    </aside>

解決思路(基于字符的匹配澈缺,忽略語義)


  • 精準(zhǔn)匹配+模糊匹配:
    • 精準(zhǔn)匹配: 用字符串查找函數(shù)來精確匹配原始數(shù)據(jù)菜名中是否包含標(biāo)準(zhǔn)菜名,只要包含就認(rèn)為匹配成功
    • 模糊匹配:調(diào)用fuzzywuzzy庫炕婶,結(jié)果jieba中文分詞提高匹配率

fuzzywuzzy的使用

fuzzywuzzy.token_sort_ratio或token_sort_ratio計算相似度時在中文字符串里需要用空格分詞才有效

fuzz.ratio("番茄炒蛋","雞蛋拌番茄")#單純匹配文本的編輯距離姐赡,考慮總字符數(shù)
44
fuzz.partial_ratio("番茄炒蛋","雞蛋拌番茄")#單純匹配文本的編輯距離,考慮最短文本的字符數(shù)
50
fuzz.token_sort_ratio("番茄炒蛋","雞蛋拌番茄")#忽略分詞順序的相似度柠掂,需要空格間隔分詞才有效
44
fuzz.token_set_ratio("番茄炒蛋","雞蛋拌番茄")#忽略分詞重復(fù)的相似度项滑,需要空格間隔分詞才有效
44
fuzz.partial_ratio("番茄 炒 蛋","雞蛋 拌 番茄")
33
fuzz.token_sort_ratio("番茄 炒 蛋","雞蛋 拌 番茄")#加空格分詞后顯著提高相似性
77
fuzz.token_set_ratio("番茄 炒 蛋","雞蛋 拌 番茄")#加空格分詞后顯著提高相似性
77
fuzz.token_set_ratio("番茄 炒 蛋","雞蛋 蛋 拌 番茄")#分詞時用全匹配的方式似乎可以提高相似性
80
fuzz.token_sort_ratio("番茄 炒 蛋","雞蛋 蛋 拌 番茄")
67
#綜合表現(xiàn)來說,中文分詞后用fuzzywuzzy.token_set_ratio最合適

fuzzywuzzy.extractOne或者extract提取候選集合中相似性最大的一個或多個選項涯贞,輸出(匹配文本枪狂,相似度)

matchname = process.extractOne(row['匹配菜名'], choices, scorer=fuzz.token_set_ratio)
#scorer用于指定相似度計算器危喉,默認(rèn)是Wratio,它的編碼方式是utf-8州疾,不能用于中文辜限,但指定scorer后可用

jieba中文分詞包

jieba.lcut("紫菜蛋花湯")#精確模式,精確分詞不冗余
['紫菜', '蛋花湯']
jieba.lcut("紫菜蛋花湯",cut_all=True)#全模式严蓖,所有可能的詞組
['紫菜', '蛋花', '蛋花湯', '花湯']
jieba.lcut_for_search("紫菜蛋花湯")#精確模式的基礎(chǔ)上對長文本進(jìn)一步分詞
['紫菜', '蛋花', '花湯', '蛋花湯']

jieba.lcut("豐化芋艿頭")
['豐化', '芋艿', '頭']
jieba.lcut("豐化芋艿頭",cut_all=True)
['豐', '化', '芋艿', '頭']
jieba.lcut_for_search("豐化芋艿頭")
['豐化', '芋艿', '頭']
#lcut分詞過于簡單薄嫡,忽略了類似'蛋花湯'中的'蛋花'信息,cut_all又過于細(xì)颗胡,反而不利于后續(xù)的相似度計算
#個人感覺lcut_for_search最合適

實(shí)驗(yàn)結(jié)果


第一階段實(shí)驗(yàn):

  • 精確匹配結(jié)果:

    匹配成功次數(shù) 225
    嘗試匹配次數(shù) 1000
    匹配成功率
    循環(huán)運(yùn)行時間:

  • 模糊匹配結(jié)果:(不包括分詞)

    ratio≥0.6

    匹配成功次數(shù) 239
    嘗試匹配次數(shù) 775
    匹配成功率 0.30838709677419357
    循環(huán)運(yùn)行時間:100.00秒

  • 模糊匹配結(jié)果:(包括分詞)

    ratio≥0.6

    匹配成功次數(shù) 503
    嘗試匹配次數(shù) 775
    匹配成功率 0.6490322580645161
    循環(huán)運(yùn)行時間:106.94秒

    ratio≥0.8

    匹配成功次數(shù) 134
    嘗試匹配次數(shù) 775
    匹配成功率 0.17290322580645162
    循環(huán)運(yùn)行時間:61.48秒

<aside>
?? 采用分詞后毫深,同樣的模糊匹配模式和ratio閾值,匹配的“門檻”變低毒姨,匹配成功率提高哑蔫,但結(jié)果不夠準(zhǔn)確。 提高ratio閾值手素,會降低匹配成功率鸳址,但提高準(zhǔn)確性

</aside>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泉懦,隨后出現(xiàn)的幾起案子稿黍,更是在濱河造成了極大的恐慌,老刑警劉巖崩哩,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巡球,死亡現(xiàn)場離奇詭異,居然都是意外死亡邓嘹,警方通過查閱死者的電腦和手機(jī)酣栈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汹押,“玉大人矿筝,你說我怎么就攤上這事∨锛郑” “怎么了窖维?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長妙痹。 經(jīng)常有香客問我铸史,道長,這世上最難降的妖魔是什么怯伊? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任琳轿,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘崭篡。我一直安慰自己挪哄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布媚送。 她就那樣靜靜地躺著中燥,像睡著了一般寇甸。 火紅的嫁衣襯著肌膚如雪塘偎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天拿霉,我揣著相機(jī)與錄音吟秩,去河邊找鬼。 笑死绽淘,一個胖子當(dāng)著我的面吹牛涵防,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沪铭,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼壮池,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了杀怠?” 一聲冷哼從身側(cè)響起椰憋,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赔退,沒想到半個月后橙依,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡硕旗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年窗骑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漆枚。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡创译,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出墙基,到底是詐尸還是另有隱情软族,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布碘橘,位于F島的核電站互订,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏痘拆。R本人自食惡果不足惜仰禽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吐葵,春花似錦规揪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至凤藏,卻和暖如春奸忽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背揖庄。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工栗菜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蹄梢。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓疙筹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親禁炒。 傳聞我的和親對象是個殘疾皇子而咆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 7.09侯瓊的父親那里咋辦呢?與他口述以上主客觀理由幕袱,可能暫時存在一定難度暴备,不過寫信說明,既是自己的強(qiáng)項凹蜂,更顯慎重...
    楊仕倫閱讀 969評論 5 59
  • 深度把握供應(yīng)鏈的基本邏輯去解決錯綜復(fù)雜的現(xiàn)實(shí)問題程曉華2022-4-23越是看似復(fù)雜的問題馍驯,越是有著簡單的解決方案...
    TIM全面庫存管咨詢程曉華閱讀 135評論 0 0
  • Day56,4月23日 今天我做了什么玛痊? 1汰瘫、喝水2000毫升 2、公司團(tuán)建 3擂煞、制定早混弥、午、晚減肥餐 4对省、給長輩...
    紫悅每日三明治閱讀 149評論 0 0
  • 今天開始重新堅持走自己的路蝗拿,原來成功的人確實(shí)孤獨(dú),就像行走開車都是一個人生命所有的一切都掌握在自己的手中蒿涎,原來成長...
    紫鵲閱讀 87評論 0 1
  • 李紅武焦點(diǎn)學(xué)習(xí)分享第113天哀托,約練27次。 昨天早晨和M和X一起學(xué)習(xí)《尊重與希望》的102頁的案例劳秋。 探討例外階段...
    dcfac43304da閱讀 134評論 0 0