skip-gram模型处理文本

目录

理论基础

代码总架构

代码实战

1. 导入包

2. 从文件中提取停止词和训练文本

3. 建立词典以及生僻词用UNK代替

4. 为skipgram生成训练参数

5. 构建模型

6. 调用负采样,抽取管检测

7. 准确率

8. 输出词向量


NLP基础+实战 让机器“写小说”-慕课网 (imooc.com)

理论基础

词向量计算工具word2vec,采用了两种语言模型:

  • CBOW:周围词预测中心词
  • skip gram:中心词预测周围词

权重

负采样

代码总架构

  1. 导入包
  2. 从文件中提取停止词和训练文本
  3. 建立词典以及生僻词
  4. 为skipgram生成训练参数
  5. 构建模型
  6. 调用负采样,抽取管检测
  7. 准确率
  8. 输出词向量

代码实战

1. 导入包

collections:

math:算数集合包

random:

jieba:分词

numpy:数学计算

tf:深度学习框架

os:

2. 从文件中提取停止词和训练文本

skip-gram模型处理文本_第1张图片

定义函数read data:用于读取停用词stop words,也就是对构建词模型没有意义,比如一天,一切等修饰词,对文章含义没有帮助

readline:按行读取

line[:-1]:反向取,为了去掉文本中的回车符\n

set:把所有停止词放入一个集合中

skip-gram模型处理文本_第2张图片

s folder path:读取文件夹中的文本资料

ls files:新建数组,并把txt文件放入数组中

os.walk:遍历文件夹中的内容

for file in files:读取所有文件

file.endswith(".txt"):判断读取的文件是否是txt文本,但是实际应用中不用判断文件后缀名这种方式,因为有些黑客会把一些可执行文件以txt为后缀保存,最好的方式是通过文件头判断文件的真实属性

skip-gram模型处理文本_第3张图片

 skip-gram模型处理文本_第4张图片

raw word list:读文件中的原始词,并存入数组

line=read line:遍历文件

line.replace:去掉换行符和空格

raw words:如果句子非空,就用jieba精确分词模型对line中的句子进行分词,得到分解好的中文词语

raw words list:将不是停用词的词语要加入到raw words list数组中

words:将raw words list传入进words

3. 建立词典以及生僻词用UNK代替

4. 为skipgram生成训练参数

5. 构建模型

6. 调用负采样,抽取管检测

7. 准确率

8. 输出词向量

你可能感兴趣的:(NLP自然语言处理,机器学习,深度学习,自然语言处理)