预处理文本数据库是任何自然语言应用程序必须完成的强制性工作之一。大多数应用程序都包含一些标准步骤,而有时您需要进行一些自定义的预处理。那么自然语言预处理如何转换数据?本文将讨论在处理文本数据时,个人使用的一些数据转换步骤。我们还将讨论这种转换的局限性。数据预处理所采取的步骤并非对所有应用程序都是强制性的,这些都是我发现在一段时间内有用的。
自然语言预处理如何转换数据?
下面提到的是一些通常更喜欢根据问题陈述的定义方式进行的转换。
1. 小写:计算机不是人,也就是说,对于计算机,计算机和计算机,这三个词在直到经过除非经过相应的培训之后才表示同一件事。对三个示例进行简单的单词计数操作,得出的计数均为1,这在处理语义时是不正确的。为此,要训练一个有效的系统,需要大量的数据集,其中此类实例的上下文保持不变。解决此问题的其他有效的简单方法是切换到类似的套管样式。在实践中,人们通常将单词小写。
2. 标点删除:标点可能很棘手。通常,可以删除边界标点符号而不会出现任何问题,但是对于单词中出现标点符号的情况则不适用。这种情况不适用于令牌生成器。同样,您将大大丢失单词结构,即不要 ->不要,那么您将无法在同一函数上调用扩展收缩函数。
3. 添加额外的空间:这是可以采取的预防措施。它要求您在词法单元的末尾添加一个额外的空格,以进行正确的标记化。例如,使用现有的句子标记器,尽管精度很高,但它们无法捕获某些边缘情况。即这是一本好书。我喜欢阅读。使用 NLTK句子标记器,该句子将被分割为一个句子。因此,在发送给NLTK之前将此类情况解决为“这是一本好书”。
4. 剥离结束:再次解决了下套管解决的相同问题。想一想这样一个场景,在不同的词汇单位之间存在连续的空格或标点符号。在进行单词/句子/段落分割时,我们不希望我们的系统在计算机和计算机之间进行区分。
5. 扩展收缩:扩展收缩简单地意味着正常化不 - >不 ,不 - >没有等,但因为有明确的情况是需要即得到照顾,这不是一个简单的任务来处理,他会 ->他会/他会的。W列出了人们使用的常见英语收缩的详尽列表。你可以在这里找到它。一个简单的解决方法是,对于每次出现的收缩,都使用Wikipedia列表中的贪婪选择技术。
6. 词干:词干是通过去除边界词素将单词转换成词根形式的过程。以我的个人经验,当模型的输入和输出均为自然语言时,应避免使用词干法。例如,在抽象汇总系统中。您不希望在摘要中看到词干。词干在分类任务中起着很好的作用,因为我们选择的向量表示不会为未词干的单词创建冗余值。
7. 语料库特定的停用词:停用词并不总是通用的。除了特定于语言的通用术语外,还有特定于语料库的重复单词,这些单词在分析中也可能没有用,但会产生噪音。添加语料库特定重复阈值的决定通常是通过查找每个单词的出现百分比来分析语料库来决定的。我不会说我们应该始终删除特定于语言的停用词,因为可能存在诸如语法校正之类的用例,其中您的系统必须在句子中适当添加文章。现在,这里你不能把一,一个的在停止列表中。
8. 拼写校正:拼写校正是实现搜索引擎时应进行的重要转换之一。实现可以像距离一样传统,也可以像实现序列到序列模型一样复杂。现有的拼写更正实现在应用于名词时效果很差,并且与动词配合得很好。
除了转换之外,还需要将它们巧妙地堆叠在管道中。如果存在同时要求删除标点符号和收缩扩展的应用程序,则应在收缩扩展之后执行标点符号移除,否则将没有意义。
上述就是关于自然语言预处理如何转换数据的全部内容,想了解更多关于自然语言预处理的信息,请继续关注。