【机器学习】贝叶斯网络实现一个简单的拼写检查

简介: 【机器学习】贝叶斯网络实现一个简单的拼写检查

2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善各个知识体系的文章,帮助大家更高效学习。

请用贝叶斯网络实现一个简单的拼写检查

算法步骤:

1)建立一个足够大的文本库

2)对文本库的每一个单词统计其出现频率

3)根据用户输入的单词,得到其所有可能的拼写相近的形式

4)比较所有拼写相近的词在文本库的出现频率。频率最高的那个词,就是正确的拼法

  • 首先自己建立文本库(外文文献)
  • 计算先验概率
  • 计算似然
  • 返回最大条件概率的单词

为了简单没有考虑不同特征之间的联合概率,如果是联合概率需要使用图计算,基于概率图(贝叶斯网络),这里仅仅考虑各特征之间独立分布。

代码实践

"""
 * Created with PyCharm
 * 作者: Laura
 * 日期: 2021/11/6
 * 时间: 18:30
 * 描述: 贝叶斯网络实现一个简单的拼写检查
"""
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
import pandas as pd
import jieba
import re
import collections
class Bayes():
    def __init__(self,):
        self.dic={}
    def cut_word(self):
        string=''
        with open('text', 'r', encoding='utf-8') as file:
            for line in file.readlines():
                string+=line
        pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') 
        string = re.sub(pattern, '', string) 
        seg_list_exact = jieba.cut(string, cut_all = False)
        object_list = []
        remove_words = [u',',u'.',u"'",u' ',u'!',u'It',u'The',u'like',u'//',u'So',u'is',u'are',u'it',u'/'
                       ,u'a',u'b',u'c',u'd',u'e',u'f',u'g',u'h',u'i',u'j',u'k',u'l',u'm',u'n',u'o',u'p',u'q',u'r',u's',u't',u'u',u'v',u'w',u'x',u'y',u'z'
                       ,u'A',u'B',u'C',u'D',u'E',u'F',u'G',u'H',u'I',u'J',u'K',u'L',u'M',u'N',u'O',u'P',u'Q',u'R',u'S',u'T',u'U',u'V',u'W',u'X',u'Y',u'Z'
                       ,u'0',u'1',u'2',u'3',u'4',u'5',u'6',u'7',u'8',u'9',u'10'] 
        for word in seg_list_exact:
            if word not in remove_words: 
                object_list.append(word) 
        words=[]
        for word in object_list:
            words.append(word)
        word_counts = collections.Counter(object_list) 
        word_counts_top10 = word_counts.most_common(100) 
        dic=dict()
        for val in word_counts_top10:
            dic[val[0]]=val[1]
        self.dic=dic
    def calculate_frequency(self):
        frequency_ = 0.
        for value in self.dic.values():
            frequency_ += value
        self.dic = dict(map(lambda x:[x, [self.dic[x] / frequency_]],self.dic))
    def calculate_p_r_c(self,word):
        for key in self.dic.keys():
            count=0.
            len_word=len(word)
            len_key=len(key)
            for num in range(min(len_word,len_key)):
                if key[num]==word[num]:
                    count+=1
            self.dic[key].append(count)
    def run(self,word):
        self.cut_word()
        self.calculate_frequency()
        self.calculate_p_r_c(word)
        print(sorted(dict(map(lambda x:[x, self.dic[x][0]*self.dic[x][1]],self.dic)).items(), key=lambda item:item[1],reverse=True)[0][0])
model=Bayes()
model.run('appl')


目录
相关文章
|
4月前
|
机器学习/深度学习 数据采集 算法
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
本文将BSSNN扩展至反向推理任务,即预测X∣y,这种设计使得模型不仅能够预测结果,还能够探索特定结果对应的输入特征组合。在二元分类任务中,这种反向推理能力有助于识别导致正负类结果的关键因素,从而显著提升模型的可解释性和决策支持能力。
373 42
贝叶斯状态空间神经网络:融合概率推理和状态空间实现高精度预测和可解释性
|
2月前
|
机器学习/深度学习 传感器 数据采集
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
397 0
|
5月前
|
机器学习/深度学习 API TensorFlow
BayesFlow:基于神经网络的摊销贝叶斯推断框架
BayesFlow 是一个基于 Python 的开源框架,利用摊销神经网络加速贝叶斯推断,解决传统方法计算复杂度高的问题。它通过训练神经网络学习从数据到参数的映射,实现毫秒级实时推断。核心组件包括摘要网络、后验网络和似然网络,支持摊销后验估计、模型比较及错误检测等功能。适用于流行病学、神经科学、地震学等领域,为仿真驱动的科研与工程提供高效解决方案。其模块化设计兼顾易用性与灵活性,推动贝叶斯推断从理论走向实践。
171 7
BayesFlow:基于神经网络的摊销贝叶斯推断框架
|
8月前
|
安全 网络协议 网络安全
当虚拟机出现网络连接问题时,应该先检查Hyper-V的网卡连接配置
当虚拟机出现网络连接问题时,应首先检查Hyper-V的网卡配置。具体步骤包括:确认虚拟机运行状态、检查虚拟交换机类型和物理网卡连接、确保虚拟机网络适配器正确连接到虚拟交换机,并验证网络配置(IP地址等)。常见问题如虚拟交换机配置错误、网络适配器未连接或防火墙阻止连接,可通过重新配置或调整设置解决。必要时重启虚拟机和宿主机,查看事件日志或联系技术支持以进一步排查问题。
|
9月前
|
机器学习/深度学习 数据采集 运维
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
409 19
|
9月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
10月前
|
机器学习/深度学习 边缘计算 运维
机器学习在网络安全中的防护:智能化的安全屏障
机器学习在网络安全中的防护:智能化的安全屏障
457 15
|
11月前
|
人工智能 搜索推荐 决策智能
不靠更复杂的策略,仅凭和大模型训练对齐,零样本零经验单LLM调用,成为网络任务智能体新SOTA
近期研究通过调整网络智能体的观察和动作空间,使其与大型语言模型(LLM)的能力对齐,显著提升了基于LLM的网络智能体性能。AgentOccam智能体在WebArena基准上超越了先前方法,成功率提升26.6个点(+161%)。该研究强调了与LLM训练目标一致的重要性,为网络任务自动化提供了新思路,但也指出其性能受限于LLM能力及任务复杂度。论文链接:https://arxiv.org/abs/2410.13825。
207 12
|
11月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
12月前
|
机器学习/深度学习 人工智能 数据挖掘
打破传统:机器学习与神经网络获2024年诺贝尔物理学奖引发的思考
诺贝尔物理学奖首次授予机器学习与神经网络领域,标志该技术在物理学研究中的重要地位。本文探讨了这一决定对物理学研究的深远影响,包括数据分析、理论物理突破及未来科研方向的启示,同时分析了其对学术跨界合作与全球科研产业的影响。
219 4