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

第五篇【传奇开心果系列】Python文本和语音相互转换库技术点案例示例:详细解读pyttsx3的`preprocess_text`函数文本预处理。

传奇开心果短博文系列

  • 系列短博文目录
    • Python文本和语音相互转换库技术点案例示例系列
  • 短博文目录
    • 前言
    • 一、pyttsx3的`preprocess_text`函数文本预处理基本用法示例代码
    • 二、实现更复杂的文本预处理逻辑示例代码
    • 三、去除停用词、词干提取示例代码
    • 四、词形还原、拼写纠正示例代码
    • 五、实体识别、去除HTML标签示例代码
    • 六、去除URL链接、处理缩写词示例代码
    • 七、处理特定的符号、处理特定的文本模式示例代码
    • 八、归纳总结

系列短博文目录

Python文本和语音相互转换库技术点案例示例系列

短博文目录

前言

在这里插入图片描述
在这里插入图片描述pyttsx3在文本转换语音之前,首先要开展系列步骤的文本预处理工作。
这些预处理步骤可以在使用pyttsx3之前应用于文本,以提高转换结果的质量和可读性。预处理后的文本更干净、准确,可以更好地用于语音转换。pyttsx3主要使用preprocess_text函数开展文本预处理。

一、pyttsx3的preprocess_text函数文本预处理基本用法示例代码

在这里插入图片描述
在这里插入图片描述下面是一个使用pyttsx3库进行文本预处理基本用法的示例代码:

import pyttsx3def preprocess_text(text):# 移除文本中的特殊字符processed_text = ''.join(e for e in text if e.isalnum() or e.isspace())# 将文本转换为小写processed_text = processed_text.lower()return processed_text# 创建一个TTS引擎
engine = pyttsx3.init()# 设置预处理文本
text = "Hello, World! This is a text-to-speech example."# 预处理文本
processed_text = preprocess_text(text)# 使用TTS引擎朗读预处理后的文本
engine.say(processed_text)
engine.runAndWait()

在上面的示例代码中,preprocess_text函数用于对文本进行预处理。它首先移除文本中的特殊字符,然后将文本转换为小写。这样可以确保文本在朗读之前被正确处理。

然后,我们使用pyttsx3.init()方法初始化一个TTS引擎。接下来,我们设置要朗读的文本,并将其传递给preprocess_text函数进行预处理。最后,使用engine.say()方法将预处理后的文本传递给TTS引擎进行朗读,然后使用engine.runAndWait()方法等待朗读完成。

你可以根据自己的需求修改preprocess_text函数,以实现更复杂的文本预处理逻辑。

二、实现更复杂的文本预处理逻辑示例代码

在这里插入图片描述在这里插入图片描述
下面是一个修改后的preprocess_text函数,实现了更复杂的文本预处理逻辑:

import redef preprocess_text(text):# 移除文本中的特殊字符和标点符号processed_text = re.sub(r'[^\w\s]', '', text)# 将文本转换为小写processed_text = processed_text.lower()# 移除多余的空格processed_text = re.sub(r'\s+', ' ', processed_text)return processed_text

在这个修改后的函数中,我们使用了re模块的正则表达式功能。首先,我们使用re.sub()函数和正则表达式[^\w\s]来移除文本中的特殊字符和标点符号。这个正则表达式表示匹配除了字母、数字、下划线和空格之外的任何字符。然后,我们将文本转换为小写,并使用re.sub()函数和正则表达式\s+来移除多余的空格,将连续的多个空格替换为一个空格。

这样,预处理后的文本将只包含小写字母、数字、下划线和单个空格,没有特殊字符和多余的空格。你可以根据自己的需求进一步修改这个函数,添加其他的预处理步骤,例如去除停用词、词干提取等。

三、去除停用词、词干提取示例代码

在这里插入图片描述
在这里插入图片描述当涉及到去除停用词和词干提取时,可以使用一些自然语言处理库,如nltk(Natural Language Toolkit)来实现。下面是一个修改后的preprocess_text函数,包括去除停用词和词干提取的示例代码:

import re
import nltk
from nltk.corpus import stopwords
from nltk.stem import PorterStemmerdef preprocess_text(text):# 移除文本中的特殊字符和标点符号processed_text = re.sub(r'[^\w\s]', '', text)# 将文本转换为小写processed_text = processed_text.lower()# 移除多余的空格processed_text = re.sub(r'\s+', ' ', processed_text)# 去除停用词stop_words = set(stopwords.words('english'))processed_text = ' '.join(word for word in processed_text.split() if word not in stop_words)# 词干提取stemmer = PorterStemmer()processed_text = ' '.join(stemmer.stem(word) for word in processed_text.split())return processed_text

在这个修改后的函数中,我们首先导入了nltk库,并从nltk.corpus模块导入了停用词和从nltk.stem模块导入了词干提取器PorterStemmer

然后,在preprocess_text函数中,我们创建了一个停用词集合stop_words,使用set(stopwords.words('english'))加载英文停用词。接下来,我们使用列表推导式和条件判断语句,将不在停用词集合中的单词保留下来,形成一个经过去除停用词的文本。

最后,我们创建了一个词干提取器stemmer,使用PorterStemmer()初始化。然后,使用列表推导式和词干提取器将文本中的每个单词提取出词干,并重新组合成一个经过词干提取的文本。

这样,预处理后的文本将不包含停用词,并且每个单词都被提取为其词干形式。你可以根据自己的需求进一步修改这个函数,添加其他的预处理步骤,如词形还原、拼写纠正等。

四、词形还原、拼写纠正示例代码

在这里插入图片描述
在这里插入图片描述要进行词形还原和拼写纠正,我们可以使用nltk库中的WordNetLemmatizerspell模块。下面是一个修改后的preprocess_text函数,包括词形还原和拼写纠正的示例代码:

import re
import nltk
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
from nltk import pos_tag
from nltk import download
from spellchecker import SpellCheckerdef preprocess_text(text):# 移除文本中的特殊字符和标点符号processed_text = re.sub(r'[^\w\s]', '', text)# 将文本转换为小写processed_text = processed_text.lower()# 移除多余的空格processed_text = re.sub(r'\s+', ' ', processed_text)# 去除停用词stop_words = set(stopwords.words('english'))processed_text = ' '.join(word for word in processed_text.split() if word not in stop_words)# 词形还原download('averaged_perceptron_tagger')download('wordnet')lemmatizer = WordNetLemmatizer()tokens = word_tokenize(processed_text)tagged_tokens = pos_tag(tokens)processed_text = ' '.join(lemmatizer.lemmatize(word, tag) for word, tag in tagged_tokens)# 拼写纠正spell = SpellChecker()processed_text = ' '.join(spell.correction(word) for word in processed_text.split())return processed_text

在这个修改后的函数中,我们首先导入了nltk库的WordNetLemmatizerword_tokenizepos_tag模块,以及spellchecker库的SpellChecker模块。

然后,在preprocess_text函数中,我们下载了nltk库的averaged_perceptron_taggerwordnet资源,用于词形还原。

接下来,我们创建了一个词形还原器lemmatizer,使用WordNetLemmatizer()初始化。然后,我们使用word_tokenize函数将文本分词为单词列表,使用pos_tag函数为每个单词标记词性,然后使用列表推导式和词形还原器将每个单词还原为其原始形式,最后重新组合成一个经过词形还原的文本。

最后,我们创建了一个拼写纠正器spell,使用SpellChecker()初始化。然后,使用列表推导式和拼写纠正器对文本中的每个单词进行拼写纠正,并重新组合成一个经过拼写纠正的文本。

这样,预处理后的文本将进行词形还原和拼写纠正,以提高文本的质量和准确性。你可以根据自己的需求进一步修改这个函数,添加其他的预处理步骤,如实体识别、去除HTML标签等。

五、实体识别、去除HTML标签示例代码

在这里插入图片描述要进行实体识别和去除HTML标签,我们可以使用nltk库中的ne_chunkBeautifulSoup模块。下面是一个修改后的preprocess_text函数,包括实体识别和去除HTML标签的示例代码:

import re
import nltk
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
from nltk import pos_tag
from nltk import ne_chunk
from nltk import download
from spellchecker import SpellChecker
from bs4 import BeautifulSoupdef preprocess_text(text):# 去除HTML标签processed_text = BeautifulSoup(text, "html.parser").get_text()# 移除文本中的特殊字符和标点符号processed_text = re.sub(r'[^\w\s]', '', processed_text)# 将文本转换为小写processed_text = processed_text.lower()# 移除多余的空格processed_text = re.sub(r'\s+', ' ', processed_text)# 去除停用词stop_words = set(stopwords.words('english'))processed_text = ' '.join(word for word in processed_text.split() if word not in stop_words)# 词形还原download('averaged_perceptron_tagger')download('wordnet')lemmatizer = WordNetLemmatizer()tokens = word_tokenize(processed_text)tagged_tokens = pos_tag(tokens)processed_text = ' '.join(lemmatizer.lemmatize(word, tag) for word, tag in tagged_tokens)# 拼写纠正spell = SpellChecker()processed_text = ' '.join(spell.correction(word) for word in processed_text.split())# 实体识别tagged_tokens = pos_tag(word_tokenize(processed_text))processed_text = ' '.join(chunk.label() if hasattr(chunk, 'label') else chunk[0] for chunk in ne_chunk(tagged_tokens))return processed_text

在这个修改后的函数中,我们首先导入了nltk库的ne_chunk模块,以及BeautifulSoup模块来处理HTML标签。

然后,在preprocess_text函数中,我们使用BeautifulSoup模块的BeautifulSoup(text, "html.parser").get_text()方法去除文本中的HTML标签。

接下来,我们继续之前的步骤,包括移除特殊字符和标点符号、转换为小写、移除多余的空格、去除停用词、词形还原和拼写纠正。

最后,我们使用pos_tag函数将文本中的单词标记词性,然后使用ne_chunk函数进行实体识别。我们使用列表推导式和条件判断语句,将识别出的实体标签保留下来,形成一个经过实体识别的文本。

这样,预处理后的文本将进行实体识别和去除HTML标签,以进一步提高文本的质量和准确性。你可以根据自己的需求进一步修改这个函数,添加其他的预处理步骤,如去除URL链接、处理缩写词等。

六、去除URL链接、处理缩写词示例代码

在这里插入图片描述要去除URL链接和处理缩写词,我们可以使用正则表达式来匹配和替换文本中的URL链接,以及使用一个缩写词词典来进行缩写词的替换。下面是一个修改后的preprocess_text函数,包括去除URL链接和处理缩写词的示例代码:

import re
import nltk
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
from nltk import pos_tag
from nltk import ne_chunk
from nltk import download
from spellchecker import SpellChecker
from bs4 import BeautifulSoupdef preprocess_text(text):# 去除HTML标签processed_text = BeautifulSoup(text, "html.parser").get_text()# 去除URL链接processed_text = re.sub(r'http\S+|www.\S+', '', processed_text)# 移除文本中的特殊字符和标点符号processed_text = re.sub(r'[^\w\s]', '', processed_text)# 将文本转换为小写processed_text = processed_text.lower()# 移除多余的空格processed_text = re.sub(r'\s+', ' ', processed_text)# 去除停用词stop_words = set(stopwords.words('english'))processed_text = ' '.join(word for word in processed_text.split() if word not in stop_words)# 处理缩写词abbreviations = {"can't": "cannot","won't": "will not","it's": "it is",# 添加其他缩写词和对应的替换}processed_text = ' '.join(abbreviations.get(word, word) for word in processed_text.split())# 词形还原download('averaged_perceptron_tagger')download('wordnet')lemmatizer = WordNetLemmatizer()tokens = word_tokenize(processed_text)tagged_tokens = pos_tag(tokens)processed_text = ' '.join(lemmatizer.lemmatize(word, tag) for word, tag in tagged_tokens)# 拼写纠正spell = SpellChecker()processed_text = ' '.join(spell.correction(word) for word in processed_text.split())# 实体识别tagged_tokens = pos_tag(word_tokenize(processed_text))processed_text = ' '.join(chunk.label() if hasattr(chunk, 'label') else chunk[0] for chunk in ne_chunk(tagged_tokens))return processed_text

在这个修改后的函数中,我们首先导入了re模块,用于处理正则表达式匹配和替换。

然后,在preprocess_text函数中,我们使用re.sub函数和正则表达式r'http\S+|www.\S+'来匹配和替换文本中的URL链接。这样,我们可以将URL链接从文本中去除。

接下来,我们继续之前的步骤,包括去除HTML标签、移除特殊字符和标点符号、转换为小写、移除多余的空格、去除停用词、处理缩写词、词形还原和拼写纠正。

在处理缩写词时,我们创建了一个缩写词词典abbreviations,其中包含了一些常见的缩写词和对应的替换。你可以根据需要添加其他的缩写词和替换到这个词典中。

最后,我们使用pos_tag函数将文本中的单词标记词性,然后使用ne_chunk函数进行实体识别。我们使用列表推导式和条件判断语句,将识别出的实体标签保留下来,形成一个经过实体识别的文本。

这样,预处理后的文本将去除URL链接、处理缩写词,并进行其他的预处理步骤,以进一步提高文本的质量和准确性。你可以根据自己的需求进一步修改这个函数,添加其他的预处理步骤,如处理特定的符号、处理特定的文本模式等。

七、处理特定的符号、处理特定的文本模式示例代码

在这里插入图片描述根据你的需求,你可以进一步修改preprocess_text函数,添加其他的预处理步骤,如处理特定的符号、处理特定的文本模式等。下面是一个示例代码,包括处理特定符号和处理特定文本模式的预处理步骤:

import re
import nltk
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
from nltk import pos_tag
from nltk import ne_chunk
from nltk import download
from spellchecker import SpellChecker
from bs4 import BeautifulSoupdef preprocess_text(text):# 去除HTML标签processed_text = BeautifulSoup(text, "html.parser").get_text()# 去除URL链接processed_text = re.sub(r'http\S+|www.\S+', '', processed_text)# 移除文本中的特殊字符和标点符号processed_text = re.sub(r'[^\w\s]', '', processed_text)# 处理特定符号processed_text = re.sub(r'\$', ' dollar ', processed_text)processed_text = re.sub(r'%', ' percent ', processed_text)# 将文本转换为小写processed_text = processed_text.lower()# 移除多余的空格processed_text = re.sub(r'\s+', ' ', processed_text)# 去除停用词stop_words = set(stopwords.words('english'))processed_text = ' '.join(word for word in processed_text.split() if word not in stop_words)# 处理缩写词abbreviations = {"can't": "cannot","won't": "will not","it's": "it is",# 添加其他缩写词和对应的替换}processed_text = ' '.join(abbreviations.get(word, word) for word in processed_text.split())# 词形还原download('averaged_perceptron_tagger')download('wordnet')lemmatizer = WordNetLemmatizer()tokens = word_tokenize(processed_text)tagged_tokens = pos_tag(tokens)processed_text = ' '.join(lemmatizer.lemmatize(word, tag) for word, tag in tagged_tokens)# 拼写纠正spell = SpellChecker()processed_text = ' '.join(spell.correction(word) for word in processed_text.split())# 实体识别tagged_tokens = pos_tag(word_tokenize(processed_text))
processed_text = ' '.join(chunk.label() if hasattr(chunk, 'label') else chunk[0] for chunk in ne_chunk(tagged_tokens))# 处理特定文本模式# 示例:将日期格式统一为YYYY-MM-DDprocessed_text = re.sub(r'\b(\d{1,2})[/-](\d{1,2})[/-](\d{2,4})\b', r'\3-\1-\2', processed_text)# 示例:将电话号码格式统一为xxx-xxx-xxxxprocessed_text = re.sub(r'\b(\d{3})[ -]?(\d{3})[ -]?(\d{4})\b', r'\1-\2-\3', processed_text)return processed_text

在这个示例代码中,我们添加了两个处理特定文本模式的预处理步骤:

  1. 将日期格式统一为YYYY-MM-DD:使用正则表达式\b(\d{1,2})[/-](\d{1,2})[/-](\d{2,4})\b匹配日期格式,并使用替换模式\3-\1-\2将日期格式统一为YYYY-MM-DD。

  2. 将电话号码格式统一为xxx-xxx-xxxx:使用正则表达式\b(\d{3})[ -]?(\d{3})[ -]?(\d{4})\b匹配电话号码格式,并使用替换模式\1-\2-\3将电话号码格式统一为xxx-xxx-xxxx。

八、归纳总结

在这里插入图片描述下面是对pyttsx3中的preprocess_text函数进行归纳总结的知识点:

  1. HTML标签去除:使用BeautifulSoup库去除文本中的HTML标签,以确保纯文本的输入。

  2. URL链接去除:使用正则表达式re.sub函数去除文本中的URL链接。

  3. 特殊字符和标点符号去除:使用正则表达式re.sub函数去除文本中的特殊字符和标点符号。

  4. 特定符号处理:使用正则表达式re.sub函数或字符串替换操作,处理特定的符号,如将$符号替换为单词dollar,将%符号替换为单词percent,将@符号替换为单词at等。

  5. 文本转换为小写:使用str.lower方法将文本转换为小写,以统一大小写格式。

  6. 多余空格移除:使用正则表达式re.sub函数去除文本中的多余空格。

  7. 停用词去除:使用NLTK库的stopwords模块获取停用词列表,将文本中的停用词去除。

  8. 缩写词处理:定义一个包含缩写词和对应替换的字典,将文本中的缩写词替换为对应的全写形式。

  9. 词形还原:使用NLTK库的WordNetLemmatizer词形还原器,对文本中的单词进行词形还原处理。

  10. 拼写纠正:使用spellchecker库的SpellChecker类,对文本中的拼写错误进行纠正。

  11. 实体识别:使用NLTK库的ne_chunk函数对文本中的实体进行识别,例如人名、地名等。

  12. 特定文本模式处理:使用正则表达式re.sub函数,处理特定的文本模式,例如统一日期格式、电话号码格式等。

在这里插入图片描述这些预处理步骤可以根据需要进行选择和修改,以适应特定的应用场景和文本数据。预处理后的文本更干净、准确,可以更好地用于后续的语音转换。

相关文章:

第五篇【传奇开心果系列】Python文本和语音相互转换库技术点案例示例:详细解读pyttsx3的`preprocess_text`函数文本预处理。

传奇开心果短博文系列 系列短博文目录Python文本和语音相互转换库技术点案例示例系列 短博文目录前言一、pyttsx3的preprocess_text函数文本预处理基本用法示例代码二、实现更复杂的文本预处理逻辑示例代码三、去除停用词、词干提取示例代码四、词形还原、拼写纠正示例代码五、…...

logback实践

1:日志区分环境 2:debug info warn error日志文件不一样 3: 文件滚动日志 4:启动可带参数 --spring.profiles.activedev --log.levelinfo 5:可从配置文件中获取上下文参数 logback-spring.xml 放在 classpath 下面 <configuration scan"false" scanPer…...

深入理解java虚拟机---自动内存管理

2.2 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些区域则是依赖用户线程的启动和结束而建立和销…...

粉笔规范词积累(文化发展)

活态保护/活态传承 基本释义 是在文化遗产生成发展的环境当中进行保护和传承&#xff0c;在人民群众生产生活过程中进行传承与发展。 应用场景 当资料中出现“让文化遗产不仅‘活’在历史中&#xff0c;更‘活’在人们的生产生活中”等类似表述&#xff0c;可概括为“活态保…...

如何在Ubuntu部署Emlog,并将本地博客发布至公网可远程访问

文章目录 前言1. 网站搭建1.1 Emolog网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总结 前言 博客作为使…...

Axios

Axios简介 axios框架全称&#xff08;ajax – I/O – system&#xff09;&#xff1a; 基于promise用于浏览器和node.js的http客户端&#xff0c;因此可以使用Promise API 一、axios是干啥的 说到axios我们就不得不说下Ajax。在旧浏览器页面在向服务器请求数据时&#xff0…...

数据仓库选型建议

1 数仓分层 1.1 数仓分层的意义 **数据复用&#xff0c;减少重复开发&#xff1a;**规范数据分层&#xff0c;开发一些通用的中间层数据&#xff0c;能够减少极大的重复计算。数据的逐层加工原则&#xff0c;下层包含了上层数据加工所需要的全量数据&#xff0c;这样的加工方…...

每日一题——LeetCode1470.重新排列数组

方法一 把数组的前n项看做一个数组&#xff0c;后n项看做一个数组&#xff0c;两个数组循环先后往res里push元素 var shuffle function(nums, n) {let res[]for(let i0;i<n;i){res.push(nums[i])res.push(nums[in])}return res }; 消耗时间和内存情况&#xff1a; 方法二…...

网络安全--网鼎杯2018漏洞复现(二次注入)

一、环境&#xff1a;在线测试平台 BUUCTF在线评测 (buuoj.cn) 二、进入界面先尝试万能账号 1or11# 换格式 hais1bux1 11or11# 三、万能的不行那我们就得想注册了&#xff0c;去register.php去看看 注册个账号 发现用户名回显&#xff0c;猜测考点为用户名处二次注入&…...

CSS篇--transform

CSS篇–transform 使用transform属性实现元素的位移、旋转、缩放等效果 位移 // 语法 transform:translate(水平移动距离&#xff0c;垂直移动距离) translate() 如果只给一个值&#xff0c;表示x轴方法移动距离 单独设置某个方向的移动距离&#xff1a;translateX() transla…...

阿里云国际-在阿里云服务器上快速搭建幻兽帕鲁多人服务器

幻兽帕鲁是最近流行的新型生存游戏。该游戏一夜之间变得极为流行&#xff0c;同时在线玩家数量达到了200万。然而&#xff0c;幻兽帕鲁的服务器难以应对大量玩家的压力。为解决这一问题&#xff0c;幻兽帕鲁允许玩家建立专用服务器&#xff0c;其提供以下优势&#xff1a; &am…...

vite 快速搭建 Vue3.0项目

一、初始化项目 npm create vite-app <project name>二、进入项目目录 cd ……三、安装依赖 npm install四、启动项目 npm run dev五、配置项目 安装 typescript npm add typescript -D初始化 tsconfig.json //执行命令 初始化 tsconfig.json npx tsc --init …...

深入理解Python爬虫的Response对象

源码分享 https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tabBB08J2 在构建Python爬虫时&#xff0c;理解HTTP响应&#xff08;Response&#xff09;是至关重要的。本篇博客将详细介绍如何使用Python的Requests库来处理HTTP响应&#xff0c;并通过详细的代码案例指导你如何提取…...

centos7下docker的安装

背景 总结下docker的一些知识 docker安装&#xff08;有网络版&#xff09; 参考文章我以前试过这个帖子&#xff0c;建议安装高版本的docker&#xff0c;&#xff08;20以上的&#xff0c;不然可能会有一些问题&#xff09; ## 1、安装依赖 [rootiZo7e61fz42ik0Z ~]#yum i…...

Excel SUMPRODUCT函数用法(乘积求和,分组排序)

SUMPRODUCT函数是Excel中功能比较强大的一个函数&#xff0c;可以实现sum,count等函数的功能&#xff0c;也可以实现一些基础函数无法直接实现的功能&#xff0c;常用来进行分类汇总&#xff0c;分组排序等 SUMPRODUCT 函数基础 SUMPRODUCT函数先计算多个数组的元素之间的乘积…...

C#上位机与三菱PLC的通信08---开发自己的通讯库(A-1E版)

1、A-1E报文回顾 具体细节请看&#xff1a; C#上位机与三菱PLC的通信03--MC协议之A-1E报文解析 C#上位机与三菱PLC的通信04--MC协议之A-1E报文测试 2、为何要开发自己的通讯库 前面使用了第3方的通讯库实现了与三菱PLC的通讯&#xff0c;实现了数据的读写&#xff0c;对于通…...

ABAQUS应用04——集中质量的添加方法

文章目录 0. 背景1. 集中质量的编辑2. 约束的设置3. 总结 0. 背景 混塔ABAQUS模型中&#xff0c;机头、法兰等集中质量的设置是模型建立过程中的一部分&#xff0c;需要研究集中质量的添加。 1. 集中质量的编辑 集中质量本身的编辑没什么难度&#xff0c;我已经用Python代码…...

[嵌入式系统-24]:RT-Thread -11- 内核组件编程接口 - 网络组件 - TCP/UDP Socket编程

目录 一、RT-Thread网络组件 1.1 概述 1.2 RT-Thread支持的网络协议栈 1.3 RT-Thread如何选择不同的网络协议栈 二、Socket编程 2.1 概述 2.2 UDP socket编程 2.3 TCP socket编程 2.4 TCP socket收发数据 一、RT-Thread网络组件 1.1 概述 RT-Thread 是一个开源的嵌入…...

【ansible】认识ansible,了解常用的模块

目录 一、ansible是什么&#xff1f; 二、ansible的特点&#xff1f; 三、ansible与其他运维工具的对比 四、ansible的环境部署 第一步&#xff1a;配置主机清单 第二步&#xff1a;完成密钥对免密登录 五、ansible基于命令行完成常用的模块学习 模块1&#xff1a;comma…...

【LeetCode】升级打怪之路 Day 01:二分法

今日题目&#xff1a; 704. 二分查找35. 搜索插入位置34. 在排序数组中查找元素的第一个和最后一个位置 目录 今日总结Problem 1: 二分法LeetCode 704. 二分查找 【easy】LeetCode 35. 搜索插入位置 ⭐⭐⭐⭐⭐LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 【medi…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...