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

win7 做服务器开网站江苏百度推广代理商

win7 做服务器开网站,江苏百度推广代理商,泗县建设局网站,网站开发ssh构建词汇表:自然语言处理中的关键步骤 在自然语言处理(NLP)任务中,词汇表(Vocabulary)是文本数据预处理的核心组件之一。它将文本中的单词或字符映射为数值索引,从而让计算机能够理解和处理语言…

构建词汇表:自然语言处理中的关键步骤

在自然语言处理(NLP)任务中,词汇表(Vocabulary)是文本数据预处理的核心组件之一。它将文本中的单词或字符映射为数值索引,从而让计算机能够理解和处理语言数据。本文将详细介绍如何使用 Python 构建一个基于字符的词汇表,并通过一个具体的例子展示其过程。

1. 词汇表的作用

在 NLP 中,文本数据通常是通过词汇表进行编码的。词汇表的作用是将文本中的每个单词或字符转换为一个唯一的数值索引,这样计算机就可以处理这些数据。例如,假设我们有一个词汇表:

{'今': 0, '天': 1, '气': 2, '真': 3, '好': 4, '<UNK>': 5, '<PAD>': 6}

那么,文本 “今天天气真好” 可以被编码为 [0, 1, 2, 3, 4]。如果文本中出现词汇表中不存在的字符,如 “明”,则可以用 <UNK>(未知字符)来代替,即索引 5。

2. 构建词汇表的步骤

2.1 准备数据

假设我们有一个 CSV 文件 simplifyweibo_4_moods.csv,其中包含了一些文本数据。文件的格式可能如下:

id,text
1,今天天气真好
2,我咁要去打球
3,明天会下雨

我们的目标是从这些文本中提取字符,统计它们的频率,并构建一个词汇表。

2.2 编写代码

以下是构建词汇表的完整代码:

from tqdm import tqdm
import pickle as pkl# 定义全局变量
MAX_VOCAB_SIZE = 4760  # 词表长度限制
UNK, PAD = '<UNK>', '<PAD>'  # 未知字,padding符号def build_vocab(file_path, max_size, min_freq):"""构建词汇表函数:param file_path: 输入文件路径:param max_size: 词汇表的最大大小:param min_freq: 单词的最小出现频率:return: 构建好的词汇表(字典形式)"""# 定义分词器,将输入字符串逐字分割为字符列表tokenizer = lambda x: [y for y in x]# 初始化词汇表字典vocab_dic = {}# 打开文件并逐行读取with open(file_path, 'r', encoding='UTF-8') as f:i = 0  # 初始化计数器,用于跳过文件的第一行for line in tqdm(f):  # 使用tqdm显示进度条if i == 0:  # 跳过文件的第一行(通常是表头)i += 1continuelin = line[2:].strip()  # 去掉每行的前两个字符,并去掉行首行尾的多余空格if not lin:  # 如果处理后的行为空,则跳过continue# 对当前行进行分字处理,并统计每个字符的出现频率for word in tokenizer(lin):vocab_dic[word] = vocab_dic.get(word, 0) + 1# 按照字符的出现频率从高到低排序,并过滤掉出现频率小于min_freq的字符# 只保留前max_size个字符vocab_list = sorted([_ for _ in vocab_dic.items() if _[1] > min_freq], key=lambda x: x[1], reverse=True)[:max_size]# 重新构建词汇表字典,将字符映射为索引值vocab_dic = {word_count[0]: idx for idx, word_count in enumerate(vocab_list)}# 将特殊符号UNK和PAD添加到词汇表中,并分配索引值vocab_dic.update({UNK: len(vocab_dic), PAD: len(vocab_dic) + 1})# 打印构建好的词汇表(可选,用于调试)print(vocab_dic)# 将词汇表保存为一个.pkl文件,方便后续使用pkl.dump(vocab_dic, open('simplifyweibo_4_moods.pkl', 'wb'))# 打印词汇表的大小print(f"Vocab size: {len(vocab_dic)}")return vocab_dic  # 返回构建好的词汇表if __name__ == "__main__":# 调用build_vocab函数,构建词汇表vocab = build_vocab('simplifyweibo_4_moods.csv', MAX_VOCAB_SIZE, 3)# 打印字符串'vocab',确认函数运行完成print('vocab')

2.3 代码解析

  1. 分词器tokenizer 是一个简单的函数,将输入字符串逐字分割为字符列表。
  2. 统计频率:逐行读取文件内容,统计每个字符的出现频率。
  3. 过滤和排序:过滤掉出现频率小于 min_freq 的字符,并按频率从高到低排序,只保留前 max_size 个字符。
  4. 构建词汇表:将字符映射为索引值,并添加特殊符号 <UNK><PAD>
  5. 保存词汇表:将词汇表保存为 .pkl 文件,方便后续加载和使用。

2.4 运行结果

输入文件 simplifyweibo_4_moods.csv 的内容如下:
在这里插入图片描述

运行代码后,输出如下:
在这里插入图片描述

同时,词汇表会被保存为 simplifyweibo_4_moods.pkl 文件。

3. 词汇表的应用

构建好的词汇表可以用于多种 NLP 任务,例如:

  • 文本分类:将文本编码为数值序列,输入到分类模型中。
  • 情感分析:分析文本的情感倾向。
  • 机器翻译:将源语言文本编码为数值序列,翻译为目标语言。

4. 总结

构建词汇表是 NLP 中的一个重要步骤。通过统计字符频率、过滤低频字符并映射为索引值,我们可以高效地处理文本数据。本文通过一个具体的例子展示了如何使用 Python 构建词汇表,并保存为 .pkl 文件以便后续使用。希望这篇文章对你有所帮助!

http://www.dtcms.com/wzjs/484338.html

相关文章:

  • 有什么网站可以做电子关键词优化技巧
  • 公司要我做网站_没有公司的材料是不是不可以做百度400电话
  • 网站中超链接怎么做搜seo
  • wordpress防恶意注册石家庄seo公司
  • 东莞++网站建设营销网页
  • 娄底建设网站的公司百度一下百度官网
  • 做制作网站找啥工作提升排名
  • 房地产型网站建设武汉seo首页
  • 登录seo信息网
  • 在线销售型网站谷歌三件套一键安装
  • 香港网站没有icp备案吗企业邮箱怎么开通注册
  • 南宁市网站7月新闻大事件30条
  • 做景区网站建设的公司怎么搜索关键词
  • 东莞做网站贴吧专业的制作网站开发公司
  • 上海网站排名优化怎么做谷歌浏览器安卓版下载
  • 有没有代做模型的网站产品经理培训哪个机构好
  • 网站建设创意公司seo外链软件
  • 自己怎么免费做网站项目推广平台有哪些
  • 高清大图网站css百度大搜推广开户
  • 网站海报是怎么做的域名解析查询
  • 区县12380网站建设情况网络推广优化招聘
  • 网站服务内容网站建设百度手机助手网页
  • 页面置换算法课程设计seo高手培训
  • 潮汕网站建设百度竞价客服
  • 网站开发 c搜索排名优化策划
  • 做讲课ppt的网站seo工作职位
  • 中山网站建设优化百度云资源链接分享群组
  • 东营网站排名优化公司搜索引擎优化的方式
  • 网站开发公司排名前十网站制作多少钱一个
  • 个人网站备案 服务内容怎么写网站ip查询