NLP任务中的文本预处理步骤、工具和示例( 二 )
首先 , 我们下载嵌入向量 。您可以在此处手动下载或直接在笔记本中进行下载 。
!wget !unzip glove*.zip
然后 , 我们创建一个向量矢量化每个数据点的函数 。句子是每个单词的平均表示 。对于空句子 , 我们将其默认为零向量 。
def vectorize(value, word_embeddings, dim = 100):sentences = value.to_list()sentence_vectors = []for i in sentences:if len(i) != 0:v = sum([word_embeddings.get(w, np.zeros((dim,))) for w ini.split()])/(len(i.split())+0.001)else:v = np.zeros((dim,))sentence_vectors.append(v)sentence_vectors = np.array(sentence_vectors)return sentence_vectors
最后 , 我们对整个数据集进行矢量化处理 , 并将矢量化的numpy数组另存为文件 , 因此我们不必在每次运行代码时都再次进行此过程 。矢量化版本将以.npy文件的形式保存为numpy数组 。Numpy包方便存储和处理海量数组数据 。
作为我的个人标准做法 , 我尝试将每个部分之后的所有数据保存为单独的文件 , 以评估数据并更灵活地更改代码 。
def vectorize_data(data = http://kandian.youth.cn/index/data, value ='english_text', dim = 100):# Extract word vectorsword_embeddings = {}f = open('glove.6B.{}d.txt'.format(str(dim)), encoding='utf-8')for line in f:values = line.split()word = values[0]coefs = np.asarray(values[1:], dtype='float32')word_embeddings[word] = coefsf.close()text_vec = vectorize(data[value], word_embeddings, dim)np.save("vectorized_{}.npy".format(str(dim)), text_vec)print("Done. Data:", text_vec.shape)return True
总结数据预处理 , 特别是文本预处理 , 可能是一个非常麻烦的过程 。机器学习工程师工作流程的很大一部分将用于这些清理和格式化数据(如果您的数据已经完全清理好了 , 那么 , 幸运的是 , 对于所有实现这一目标的工程师来说 , 他们都感到很荣幸) 。
这篇文章中的所有代码都是非常抽象的 , 可以应用于许多数据项目(您只需更改列名 , 所有代码都可以正常工作) 。在笔记本中 , 我还添加了异常功能来处理故障情况 , 以确保您的代码不会在中途崩溃 。我希望它对您的项目有帮助 , 就像对我的帮助一样 。
最后 , 所有的代码可以在这里找到:github/viethoangtranduong/covid19-tweets
作者:Viet Hoang Tran Duong
deephub翻译组
- 脸上|那个被1亿锦鲤砸中的“信小呆”:失去工作后,脸上已无纯真笑容
- 夹缝|“互联网卖菜”背后:夹缝中的菜贩与巨头们的垄断
- 自动任务|赶在三星 S21 发布之前实现语音解锁
- 骁龙865|5G手机中的性能怪兽,256+120W闪充,比iPhone12值得买
- 还原任务栏|任务栏怎么还原
- go-zero 如何应对海量定时/延迟任务?
- RFID在冷链物流中的作用-RFID冷链资产管理解决方案
- 成员|千元机中的实力派再添新成员,三部千元机,一部更比一部强!
- Kotlin集合vs Kotlin序列与Java流
- 金融市场中的NLP——情感分析