日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python容錯的前綴樹實現中文糾錯

瀏覽:114日期:2022-06-15 11:28:33
目錄介紹實現參考介紹

本文使用 Python 實現了前綴樹,并且支持編輯距離容錯的查詢。文中的前綴樹只存儲了三個分詞,格式為 (分詞字符串,頻率) ,如:(’中海晉西園’, 2)、(’中海西園’, 24)、(’中南海’, 4),可以換成自己的文件進行數據的替換。在查詢的時候要指定一個字符串和最大的容錯編輯距離。

實現

class Word: def __init__(self, word, freq):self.word = wordself.freq = freqclass Trie: def __init__(self):self.root = LetterNode(’’)self.START = 3 def insert(self, word, freq):self.root.insert(word, freq, 0) def findAll(self, query, maxDistance):suggestions = self.root.recommend(query, maxDistance, self.START)return sorted(set(suggestions), key=lambda x: x.freq)class LetterNode: def __init__(self, char):self.REMOVE = -1self.ADD = 1self.SAME = 0self.CHANGE = 2self.START = 3self.pointers = []self.char = charself.word = None def charIs(self, c):return self.char == c def insert(self, word, freq, depth):if ’ ’ in word: word = [i for i in word.split(’ ’)]if depth < len(word): c = word[depth].lower() for next in self.pointers:if next.charIs(c): return next.insert(word, freq, depth + 1) nextNode = LetterNode(c) self.pointers.append(nextNode) return nextNode.insert(word, freq, depth + 1)else: self.word = Word(word, freq) def recommend(self, query, movesLeft, lastAction):suggestions = []length = len(query)if length >= 0 and movesLeft - length >= 0 and self.word: suggestions.append(self.word)if movesLeft == 0 and length > 0: for next in self.pointers:if next.charIs(query[0]): suggestions += next.recommend(query[1:], movesLeft, self.SAME) breakelif movesLeft > 0: for next in self.pointers:if length > 0: if next.charIs(query[0]):suggestions += next.recommend(query[1:], movesLeft, self.SAME) else:suggestions += next.recommend(query[1:], movesLeft - 1, self.CHANGE)if lastAction != self.CHANGE and lastAction != self.REMOVE: suggestions += next.recommend(query, movesLeft - 1, self.ADD)if lastAction != self.ADD and lastAction != self.CHANGE: if length > 1 and next.charIs(query[1]):suggestions += next.recommend(query[2:], movesLeft - 1, self.REMOVE) elif length > 2 and next.charIs(query[2]) and movesLeft == 2:suggestions += next.recommend(query[3:], movesLeft - 2, self.REMOVE)else: if lastAction != self.CHANGE and lastAction != self.REMOVE:suggestions += next.recommend(query, movesLeft - 1, self.ADD)return suggestionsdef buildTrieFromFile(): trie = Trie() rows = [(’中海晉西園’, 2),(’中海西園’, 24),(’中南海’, 4)] for row in rows:trie.insert(row[0], int(row[1])) return triedef suggestor(trie, s, maxDistance): if ’ ’ in s:s = [x for x in s.split(’ ’)] suggestions = trie.findAll(s, maxDistance) return [str(x.word) for x in suggestions]if __name__ == '__main__': trie = buildTrieFromFile() r = suggestor(trie, ’中海晉西園’, 1) print(r)

分析

結果打印:[’中海晉西園’, ’中海西園’]

可以看出“中海晉西園”是和輸入完全相同的字符串,編輯距離為 0 ,所以符合最大編輯距離為 1 的要求,直接返回。

“中海西園”是“中海晉西園”去掉“晉”字之后的結果,編輯距離為 1, 所以符合最大編輯距離為 1 的要求,直接返回。

另外,“中南海”和“中海晉西園”的編輯距離為 4 ,不符合最大編輯距離為 1 的要求,所以結果中沒有出現。

參考

https://github.com/leoRoss/AutoCorrectTrie

到此這篇關于Python容錯的前綴樹實現中文糾錯的文章就介紹到這了,更多相關Python 中文糾錯內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧美日本国产| 蜜臀av一区二区在线免费观看| 国产探花一区在线观看| 日韩黄色在线观看| 亚洲一区欧美二区| 激情91久久| 视频在线观看一区二区三区| 好吊一区二区三区| 视频一区二区中文字幕| 亚洲精品九九| 国产精品久久久亚洲一区| 美女久久99| 日韩av二区| 欧美性感美女一区二区 | 亚洲精一区二区三区| 在线观看亚洲精品福利片| 亚洲精品女人| 美女性感视频久久| 高清日韩中文字幕| 久久国产电影| 午夜在线视频观看日韩17c| 亚洲开心激情| 欧美激情网址| 日韩免费一区| 午夜久久福利| 日韩不卡一区二区| 国产一区二区三区网| 亚洲啊v在线| 亚洲一区免费| 国产精品亚洲二区| av高清一区| 蘑菇福利视频一区播放| 日韩成人午夜精品| 久久麻豆视频| 久久国产影院| 三级在线观看一区二区| 国产极品嫩模在线观看91精品| 日韩大片在线观看| 性色av一区二区怡红| 国产精品亚洲欧美日韩一区在线 | 亚洲综合不卡| 国产视频网站一区二区三区| 三级在线看中文字幕完整版| 精品一区在线| 亚洲精品无播放器在线播放| 精品视频网站| 国产精品色网| 欧美aⅴ一区二区三区视频| 欧美亚洲在线日韩| 91成人福利| 蜜桃精品在线| 91成人精品在线| 香蕉久久99| 国产精品久久久久av蜜臀| 免费不卡中文字幕在线| 国产色噜噜噜91在线精品| 国产一区亚洲| 国产精品1区在线| 不卡中文一二三区| 麻豆久久一区| 一区二区91| 日韩国产激情| 欧美在线91| 欧美精品一二| 欧美激情在线精品一区二区三区| 99在线观看免费视频精品观看| 久久精品国产久精国产爱| 性色一区二区| 特黄毛片在线观看| 日韩高清一区二区| 欧美日韩激情| 国产精品国产三级国产在线观看| 热久久久久久久| 在线人成日本视频| 日本综合精品一区| 红桃视频国产一区| 中文字幕人成乱码在线观看| 欧美日一区二区在线观看| 国产婷婷精品| 成人精品亚洲| 高清精品久久| 国产免费av国片精品草莓男男| 欧美特黄一级| 成人va天堂| 成人午夜网址| 国产调教精品| 色狠狠一区二区三区| 婷婷综合网站| 97欧美在线视频| 国产精品视频一区二区三区四蜜臂 | 日本亚洲视频| 91精品91| 久久久久免费av| 久久久久久自在自线| 国产精品最新| 青青草91视频| 日本一区福利在线| 国产一区日韩一区| 黄毛片在线观看| 精品国产亚洲一区二区在线观看| 日韩va亚洲va欧美va久久| 丝瓜av网站精品一区二区 | 日韩精品首页| 成人福利视频| 成人亚洲一区| 久草精品视频| 久久亚洲人体| 老牛国内精品亚洲成av人片| 日韩精品亚洲一区二区三区免费| 在线视频免费在线观看一区二区| 日韩大片在线| 97精品国产福利一区二区三区| 国产日韩欧美三区| 国产亚洲高清在线观看| 欧美一区影院| 91成人在线| 国产日韩欧美中文在线| 91九色综合| 国产精品一区三区在线观看| 国产精品调教| 久久一区精品| 91一区二区| 丝袜美腿诱惑一区二区三区 | 欧美天堂一区| 欧美日韩一区二区三区不卡视频| 日韩极品在线观看| 亚洲在线久久| 欧美一区精品| 久久亚洲道色| 丁香婷婷久久| 高清av不卡| 亚洲综合电影| 91tv亚洲精品香蕉国产一区| 99热国内精品| 丝袜a∨在线一区二区三区不卡| 久久午夜影视| 日本综合视频| 日本一区二区三区中文字幕| 日本不卡在线视频| 国产欧美日韩精品高清二区综合区 | 亚洲伦乱视频| 欧美专区在线| 99久久亚洲精品| 精品在线播放| 91欧美日韩| 国产一区清纯| 奶水喷射视频一区| 69堂免费精品视频在线播放| 久久免费精品| 欧美亚洲国产激情| 美女精品一区| 国产精选久久| 麻豆理论在线观看| 久久久成人网| 一区二区亚洲视频| 国产精品主播在线观看| 97精品国产福利一区二区三区| 欧美a级片一区| 日韩精品一卡二卡三卡四卡无卡| 日本少妇精品亚洲第一区| 成人综合一区| 日韩中文字幕麻豆| 欧美aⅴ一区二区三区视频| 久久婷婷久久| 中文在线日韩| 国产一区二区三区黄网站| 欧美日韩精品一本二本三本| 亚洲v天堂v手机在线| 国产videos久久| 免费日韩一区二区| 精品免费在线| 国产精品日本| 精品一区不卡| 国产精品呻吟| 国产精品九九| 一区二区视频欧美| 国产精品2区| 亚洲免费黄色| 久久精品系列| 日韩影院在线观看| 国产精品成人a在线观看| 久久高清国产| 精品视频91| 香蕉视频成人在线观看| 久久精品五月| 免费在线观看日韩欧美| 国产一区二区三区网| 西西人体一区二区| 国产精品地址| 99视频精品免费观看| 精品国产三区在线| 亚洲人成精品久久久| 久久久久久久久久久妇女| 欧美日韩亚洲一区| 亚洲免费网址| 日韩高清成人| 欧美韩一区二区| 一区二区国产在线| 欧美天堂视频| 国产毛片精品久久|