没有合适的资源?快使用搜索试试~ 我知道了~
首页使用pytorch和torchtext进行文本分类的实例
文本分类是NLP领域的较为容易的入门问题,本文记录我自己在做文本分类任务以及复现相关论文时的基本流程,绝大部分操作都使用了torch和torchtext两个库。 1. 文本数据预处理 首先数据存储在三个csv文件中,分别是train.csv,valid.csv,test.csv,第一列存储的是文本数据,例如情感分类问题经常是用户的评论review,例如imdb或者amazon数据集。第二列是情感极性polarity,N分类问题的话就有N个值,假设值得范围是0~N-1。 下面是很常见的文本预处理流程,英文文本的话不需要分词,直接按空格split就行了,这里只会主要说说第4点。 1、去除非文本部分
资源详情
资源评论
资源推荐

使用使用pytorch和和torchtext进行文本分类的实例进行文本分类的实例
文本分类是NLP领域的较为容易的入门问题,本文记录我自己在做文本分类任务以及复现相关论文时的基本流程,绝大部分操
作都使用了torch和torchtext两个库。
1. 文本数据预处理文本数据预处理
首先数据存储在三个csv文件中,分别是train.csv,valid.csv,test.csv,第一列存储的是文本数据,例如情感分类问题经常是
用户的评论review,例如imdb或者amazon数据集。第二列是情感极性polarity,N分类问题的话就有N个值,假设值得范围是
0~N-1。
下面是很常见的文本预处理流程,英文文本的话不需要分词,直接按空格split就行了,这里只会主要说说第4点。
1、去除非文本部分
2、分词
3、去除停用词
4、对英文单词进行词干提取(stemming)和词型还原(lemmatization)
5、转为小写
6、特征处理
Bag of Words
Tf-idf
N-gram
Word2vec
词干提取和词型还原词干提取和词型还原
from nltk.stem import SnowballStemmer
stemmer = SnowballStemmer("english") # 选择语言
from nltk.stem import WordNetLemmatizer
wnl = WordNetLemmatizer()
SnowballStemmer较为激进,转换有可能出现错误,这里较为推荐使用WordNetLemmatizer,它一般只在非常肯定的情况下
才进行转换,否则会返回原来的单词。
stemmer.stem('knives')
# knive
wnl.lemmatize('knives')
# knife
因为我没有系统学习和研究过NLTK的代码,所以就不多说了,有兴趣的可以自己去阅读NLTK的源码。
2. 使用使用torchtext加载文本数据加载文本数据
本节主要是用的模块是torchtext里的data模块,处理的数据同上一节所描述。
首先定义一个tokenizer用来处理文本,比如分词,小写化,如果你已经根据上一节的词干提取和词型还原的方法处理过文本
里的每一个单词后可以直接分词就够了。
tokenize = lambda x: x.split()
或者也可以更保险点,使用spacy库,不过就肯定更耗费时间了。
import spacy
spacy_en = spacy.load('en')
def tokenizer(text):
return [toke.text for toke in spacy_en.tokenizer(text)]
然后要定义Field,至于Field是啥,你可以简单地把它理解为一个能够加载、预处理和存储文本数据和标签的对象。我们可以
用它根据训练数据来建立词表,加载预训练的Glove词向量等等。

















weixin_38706603
- 粉丝: 10
- 资源: 922
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0