婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Python中文糾錯(cuò)的簡(jiǎn)單實(shí)現(xiàn)

Python中文糾錯(cuò)的簡(jiǎn)單實(shí)現(xiàn)

熱門(mén)標(biāo)簽:預(yù)覽式外呼系統(tǒng) 銀川電話(huà)機(jī)器人電話(huà) 電銷(xiāo)機(jī)器人錄音要學(xué)習(xí)什么 外賣(mài)地址有什么地圖標(biāo)注 企業(yè)彩鈴地圖標(biāo)注 上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià) 如何地圖標(biāo)注公司 煙臺(tái)電話(huà)外呼營(yíng)銷(xiāo)系統(tǒng) 長(zhǎng)春極信防封電銷(xiāo)卡批發(fā)

介紹

這篇文章主要是用 Python 實(shí)現(xiàn)了簡(jiǎn)單的中文分詞的同音字糾錯(cuò),目前的案例中只允許錯(cuò)一個(gè)字,自己如果有興趣可以繼續(xù)優(yōu)化下去。具體步驟如下所示:

  • 先準(zhǔn)備一個(gè)文件,里面每一行中放一個(gè)中文分詞,我這里的文件是下面代碼中的 /Users/wys/Desktop/token.txt ,你們可以改成自己,再運(yùn)行代碼
  • 將構(gòu)建一個(gè)前綴樹(shù)類(lèi),實(shí)現(xiàn)插入功能,將所有的標(biāo)準(zhǔn)分詞都插入到前綴樹(shù)中,另外實(shí)現(xiàn)一個(gè)搜索功能,用來(lái)搜索分詞
  • 將輸入的錯(cuò)誤分詞中的每個(gè)字都找出 10 個(gè)同音字,將每個(gè)字都用 10 個(gè)同音字替換,結(jié)果可以最多得到 n*10 個(gè)分詞,n 為分詞的長(zhǎng)度,因?yàn)橛械囊艨赡軟](méi)有 10 個(gè)同音字。
  • 將這些分詞都經(jīng)過(guò)前綴樹(shù)的查找,如果能搜到,將其作為正確糾正就過(guò)返回

代碼

import re,pinyin
from Pinyin2Hanzi import DefaultDagParams
from Pinyin2Hanzi import dag

class corrector():
    def __init__(self):
        self.re_compile = re.compile(r'[\u4e00-\u9fff]')
        self.DAG = DefaultDagParams()

    # 將文件中的詞讀取
    def getData(self):
        words = []
        with open("/Users/wys/Desktop/token.txt") as f:
            for line in f.readlines():
                word = line.split(" ")[0]
                if word and len(word) > 2:
                    res = self.re_compile.findall(word)
                    if len(res) == len(word): ## 保證都是漢字組成的分詞
                        words.append(word)
        return words

    # 將每個(gè)拼音轉(zhuǎn)換成同音的 10 個(gè)候選漢字,
    def pinyin_2_hanzi(self, pinyinList):
        result = []
        words = dag(self.DAG, pinyinList, path_num=10)
        for item in words:
            res = item.path  # 轉(zhuǎn)換結(jié)果
            result.append(res[0])
        return result

    # 獲得詞經(jīng)過(guò)轉(zhuǎn)換的候選結(jié)結(jié)果
    def getCandidates(self, phrase):
        chars = {}
        for c in phrase:
            chars[c] = self.pinyin_2_hanzi(pinyin.get(c, format='strip', delimiter=',').split(','))
        replaces = []
        for c in phrase:
            for x in chars[c]:
                replaces.append(phrase.replace(c, x))
        return set(replaces)

    # 獲得糾錯(cuò)之后的正確結(jié)果
    def getCorrection(self, words):
        result = []
        for word in words:
            for word in self.getCandidates(word):
                if Tree.search(word):
                    result.append(word)
                    break
        return result

class Node:
    def __init__(self):
        self.word = False
        self.child = {}


class Trie(object):
    def __init__(self):
        self.root = Node()

    def insert(self, words):
        for word in words:
            cur = self.root
            for w in word:
                if w not in cur.child:
                    cur.child[w] = Node()
                cur = cur.child[w]

            cur.word = True

    def search(self, word):
        cur = self.root
        for w in word:
            if w not in cur.child:
                return False
            cur = cur.child[w]

        if cur.word == False:
            return False
        return True

if __name__ == '__main__':
    # 初始化糾正器
    c = corrector()
    # 獲得單詞
    words = c.getData()
    # 初始化前綴樹(shù)
    Tree = Trie()
    # 將所有的單詞都插入到前綴樹(shù)中
    Tree.insert(words)
    # 測(cè)試
    print(c.getCorrection(['專(zhuān)塘街道','轉(zhuǎn)塘姐道','轉(zhuǎn)塘街到']))

結(jié)果

打印結(jié)果為:
['轉(zhuǎn)塘街道', '轉(zhuǎn)塘街道', '轉(zhuǎn)塘街道']

可以看出都糾正成功了,有一定的效果 ,之后會(huì)繼續(xù)優(yōu)化。

到此這篇關(guān)于Python中文糾錯(cuò)的簡(jiǎn)單實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python中文糾錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python容錯(cuò)的前綴樹(shù)實(shí)現(xiàn)中文糾錯(cuò)

標(biāo)簽:盤(pán)錦 珠海 西寧 湖北 上饒 宜昌 潮州 佳木斯

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python中文糾錯(cuò)的簡(jiǎn)單實(shí)現(xiàn)》,本文關(guān)鍵詞  Python,中文,糾,錯(cuò)的,簡(jiǎn)單,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python中文糾錯(cuò)的簡(jiǎn)單實(shí)現(xiàn)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Python中文糾錯(cuò)的簡(jiǎn)單實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 民权县| 黑山县| 梁河县| 抚宁县| 呼和浩特市| 罗源县| 恩平市| 措美县| 旬邑县| 宁波市| 容城县| 定州市| 上犹县| 安阳市| 离岛区| 钦州市| 岫岩| 民勤县| 安乡县| 博乐市| 日土县| 三明市| 蓝田县| 凉山| 涞源县| 临高县| 喀喇沁旗| 什邡市| 三原县| 修武县| 金门县| 平阳县| 祁阳县| 潞城市| 如皋市| 石河子市| 仙游县| 抚远县| 金寨县| 八宿县| 泽库县|