spacy

NLP任务中的文本预处理步骤、工具和示例

南楼画角 提交于 2020-10-29 17:32:18
作者 | Viet Hoang Tran Duong 来源 | DeepHub IMBA 头图 | CSDN付费下载于视觉中国 数据是新的石油,文本是我们需要更深入钻探的油井。文本数据无处不在,在实际使用之前,我们必须对其进行预处理,以使其适合我们的需求。对于数据也是如此,我们必须清理和预处理数据以符合我们的目的。这篇文章将包括一些简单的方法来清洗和预处理文本数据以进行文本分析任务。 我们将在Covid-19 Twitter数据集上对该方法进行建模。这种方法有3个主要组成部分: 首先,我们要清理和过滤所有非英语的推文/文本,因为我们希望数据保持一致。 其次,我们为复杂的文本数据创建一个简化的版本。 最后,我们将文本向量化并保存其嵌入以供将来分析。 清理和过滤文本 首先,为了简化文本,我们要将文本标准化为仅为英文字符。此函数将删除所有非英语字符。 def clean_non_english(txt): txt = re.sub(r'\W+', ' ', txt) txt = txt.lower() txt = txt.replace("[^a-zA-Z]", " ") word_tokens = word_tokenize(txt) filtered_word = [w for w in word_tokens if all(ord(c) < 128 for c in w)]

spacy词向量

丶灬走出姿态 提交于 2020-10-28 20:40:15
spaCy能够比较两个对象,并预测它们的相似程度。 预测相似性对于构建推荐系统或标记重复项很有用。 例如,您可以建议与当前正在查看的用户内容相似的用户内容,或者将支持凭单标记为与现有内容非常相似的副本。 每个Doc、Span和Token都有一个.similarity()方法,它允许您将其与另一个对象进行比较,并确定相似度。当然,相似性总是主观的——“狗”和“猫”是否相似取决于你如何看待它。spaCy的相似模型通常假定一个相当通用的相似性定义。 tokens = nlp( u'dog cat banana') for token1 in tokens: for token2 in tokens: print(token1.similarity(token2)) 在这种情况下,模型的预测是很准确的。狗和猫非常相似,而香蕉却不是很相似。相同的标记显然是100%相似的(并不总是精确的1.0,因为向量数学和浮点数的不精确)。 相似性是通过比较词向量或“词嵌入”来确定的,即一个词的多维意思表示。单词向量可以通过像word2vec这样的算法生成,通常是这样的: important note 为了使比较算法简洁和快速,spaCy的小模型(所有以sm结尾的包)都不使用单词向量,而且这些sm包只包含上下文相关的向量。这意味着您仍然可以使用similarity()方法来比较文档、span和token

Learning to Generate Questions by Learning What not to Generate阅读笔记

大憨熊 提交于 2020-10-24 19:48:42
再次调试代码后 简单记录了项目的结构和主要流程 一 加载数据集,用spacy进行预处理,提取词汇特征,保存成.pkl文件。 二 做嵌入,通过glove文件嵌入初始化每个向量,原文是glove.500B.100d.txt,运行内存不足,我换成了glove.6B.50d.txt.在prepro_util.py文件里做单词嵌入、答案位置嵌入、ner、pos、dep、iob等嵌入,得到嵌入矩阵和字典,构建特征实例。生成output里txt文件。 三 线索预测器 预测器由四层组成:嵌入层。该层与文章编码器具有相同的特性,只是它不包括线索指示器。因此,每个单词都由其单词嵌入、词汇特征、二进制特征、单词频率特征和答案位置指示器来表示。语法依赖分析层。我们通过spaCy[24]得到了每一段的句法依存分析树,其中词之间的依存边是有方向的。模型中,使用句法结构来表示通过词的结构。编码层。编码层的目标是基于依赖树将上下文信息编码到每个单词中。利用多层GCN将相邻词的特征信息融合到每个顶点,即一个词。在L-GCN层之后,每个单词的隐藏向量表示将合并其相邻单词的信息,这些单词在依赖关系树中的跳数不超过L。输出层。在获得文章中每个词的上下文感知表示之后,我们计算每个词成为线索词的概率。利用线性层计算非正规化概率。我们随后通过一个Gumbel Softmax层为每个单词取样二元线索指示符,给出了不正常的概率

[Kaggle] Spam/Ham Email Classification 垃圾邮件分类(spacy)

馋奶兔 提交于 2020-10-18 09:10:44
文章目录 1. 导入包 2. 数据预览 2. 特征组合 3. 建模 4. 训练 5. 预测 练习地址: https://www.kaggle.com/c/ds100fa19 1. 导入包 import pandas as pd import spacy train = pd . read_csv ( "train.csv" ) test = pd . read_csv ( "test.csv" ) 2. 数据预览 train . head ( 10 ) train = train . fillna ( " " ) test = test . fillna ( " " ) 注意处理下 NaN , 否则后续会报错,见链接: spacy 报错 gold.pyx in spacy.gold.GoldParse. init () 解决方案https://michael.blog.csdn.net/article/details/109106806 2. 特征组合 对邮件的主题和内容进行组合 + 处理标签 train [ 'all' ] = train [ 'subject' ] + train [ 'email' ] train [ 'label' ] = [ { "spam" : bool ( y ) , "ham" : not bool ( y ) } for y in train .