当前位置: 首页 > ops >正文

自然语言处理NLP 学习笔记

Python 机器人 Demo 源码编写

以下是一个简单的 Python 机器人 Demo 源码,使用 pyautoguispeech_recognition 库实现基本功能,如语音识别和自动化操作。

安装依赖库

确保安装以下库:

pip install pyautogui speechrecognition pyaudio
语音识别模块
import speech_recognition as srdef listen():recognizer = sr.Recognizer()with sr.Microphone() as source:print("请说话...")audio = recognizer.listen(source)try:text = recognizer.recognize_google(audio, language="zh-CN")print(f"你说的是: {text}")return textexcept Exception as e:print("未识别到语音")return None

自动化操作模块
import pyautogui
import timedef execute_command(command):if "打开浏览器" in command:pyautogui.hotkey("win", "r")pyautogui.typewrite("chrome")pyautogui.press("enter")elif "关闭窗口" in command:pyautogui.hotkey("alt", "f4")elif "截图" in command:screenshot = pyautogui.screenshot()screenshot.save("screenshot.png")

主程序循环
if __name__ == "__main__":while True:command = listen()if command:if "退出" in command:print("机器人已关闭")breakexecute_command(command)

自然语言处理NLP


使用 transformers 库或 NLTK 增强语音识别的意图分析能力。

文本分类

文本分类是NLP中常见的任务,用于将文本分配到预定义的类别中。例如,垃圾邮件检测、情感分析(判断评论是积极还是消极)或新闻主题分类。常用的库包括Scikit-learn、TensorFlow和PyTorch,结合预训练模型如BERT或RoBERTa可以显著提升性能。

from transformers import pipeline
classifier = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")
result = classifier("I love using Python for NLP!")
print(result)  # 输出: [{'label': 'POSITIVE', 'score': 0.9998}]

命名实体识别(NER)

NER用于识别文本中的实体(如人名、地点、组织等)。应用场景包括信息抽取、知识图谱构建。流行的工具包括SpaCy、Hugging Face Transformers和Stanford NLP。

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for $1 billion")
for ent in doc.ents:print(ent.text, ent.label_)  # 输出: Apple ORG, U.K. GPE, $1 billion MONEY
具体NER介绍

实体识别(Named Entity Recognition,简称NER)是自然语言处理(NLP)中的一项基础任务,主要用于从非结构化的文本中识别和提取预定义类别中的命名实体。常见的实体类型包括人名、地名、组织机构名、时间、日期、货币金额、百分比等。

NER的主要应用场景
  1. 信息抽取:从大量文本中提取关键信息,如从新闻中识别重要人物、地点和事件
  2. 搜索引擎优化:帮助搜索引擎更好地理解网页内容,提升搜索结果的相关性
  3. 智能问答系统:准确理解用户问题中的关键实体,提高回答的精确度
  4. 知识图谱构建:作为知识图谱构建的前置步骤,识别文本中的实体和关系
  5. 医疗领域应用:识别医疗文本中的药物名称、疾病名称、症状等专业术语
NER的技术实现方法
  1. 规则方法

    • 基于字典的匹配
    • 使用正则表达式
    • 适用于特定领域且实体类型固定的场景
  2. 统计机器学习方法

    • 隐马尔可夫模型(HMM)
    • 条件随机场(CRF)
    • 最大熵马尔可夫模型(MEMM)
  3. 深度学习方法

    • BiLSTM-CRF模型
    • Transformer架构(如BERT、RoBERTa等预训练模型)
    • 近年来深度学习模型在NER任务中表现突出
NER的一般处理流程
  1. 文本预处理:包括分词、词性标注等基础NLP处理
  2. 特征提取:提取词法特征、上下文特征等
  3. 模型训练:使用标注数据训练实体识别模型
  4. 实体识别:对新文本进行实体识别和分类
  5. 后处理:对识别结果进行验证和修正
评估指标

NER系统的主要评估指标包括

  • 准确率(Precision)
  • 召回率(Recall)
  • F1值(F1-score)
  • 通常采用严格的评估标准,只有实体边界和类型都正确才算识别正确

机器翻译

机器翻译自动将一种语言的文本转换为另一种语言。Google的Transformer模型和Facebook的M2M-100是典型代表。Hugging Face的库提供了便捷的API。

translator = pipeline("translation_en_to_fr", model="t5-small")
result = translator("Hello, how are you?", max_length=40)
print(result)  # 输出: [{'translation_text': 'Bonjour, comment allez-vous?'}]
http://www.xdnf.cn/news/14266.html

相关文章:

  • Jenkins 全面深入学习目录
  • c++ 项目使用 prometheus + grafana 进行实时监控
  • 安卓9.0系统修改定制化____默认开启 开发者选项中的OEM锁解锁选项 开搞篇 五
  • Ubuntu安装Gym及其仿真
  • 基于51单片机的污水ph值和液压监测系统
  • 关于MCU、MPU、SoC、DSP四大类型芯片
  • Python学习小结
  • 山东大学项目实训——基于DeepSeek的智能写作与训练平台(十四)
  • 智能语音交互技术深度解析:从原理到产业实践
  • 访问vLLM启动的大模型,报错The model `XXX/XXX` does not exist
  • 嵌入式开发--汇川伺服干扰造成FDCAN模块错误过多导致死机
  • 芯片测试之 trim修调测试详解
  • AI结构化数据:智能聊天与传统开发的结合
  • Java大模型开发入门 (6/15):对话的灵魂 - 深入理解LangChain4j中的模型、提示和解析器
  • 从0到1掌握数据库安全:用户认证与授权的深度实践
  • ToonMe:照片变卡通,创意无限
  • Java大模型开发入门 (8/15):连接外部世界(上) - RAG入门与文档加载
  • <10>-MySQL索引特性
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus云服务的Dify一键部署
  • HTML+CSS 登陆框动态切换
  • NGINX 四层上游健康检查模块实战`ngx_stream_upstream_hc_module`
  • 会计 - 财务报告
  • 力扣 2616. 最小化数对的最大差值 题解
  • cpu微码大全 微码添加工具 八九代cpu针脚屏蔽图
  • c++ 右值引用移动构造函数
  • 功能安全实战系列10-英飞凌TC3xx_SRI总线监控开发
  • 动态代理选择:JDK vs CGLIB
  • 2.6 激光雷达消息格式
  • ESP32开发-ESP32P4环境配置
  • 【AD笔记】嘉立创元件导入到AD中(原理图-pcd-3D模型)