【发布时间】:2017-05-07 01:38:25
【问题描述】:
我需要一些帮助。我是 NLP 和非结构化数据清理的新手。有人可以回答以下问题吗...谢谢
- 需要正则表达式的帮助来识别像 _male 和 female_ 之类的词或更通用的词,例如 _word 和 word_ 或 _something_something_something,并去掉出现在开头或结尾但不在中间的下划线。
- 我想知道清理数据的正式过程,比如清理非结构化数据是否需要遵循任何步骤,我问这个是因为我正在做词形还原(使用 POS)并替换常见的词,例如 (某事,某事)到某事_某事。那么我应该遵循哪些步骤?我现在正在执行以下操作 -tokenize_clean>remove_numbers>remove_url>remove_slash>remove_cross>remove_garbage>replace_hypen_with_underscore>lemmatize_sentence>change_words_to_bigrams>remove_smaller_than_3(len 小于 3 的单词)>remove_simlutaneous(同时发生多次的单词,例如,死亡死亡死亡) >remove_location>remove_bullets>remove_stop>remove_simlutaneous
我应该在这些步骤中做一些不同的事情吗?
- 我也有类似 (group'shealthplanbecauseitheroneoftheoftheoftheofthefollowingqualifyingeventshappens) , (whenyouuseanon_networkprovider) ,(per\xad) ,(vlfldq\x10vxshuylvhg) 我应该如何处理它们?完全忽略它们还是尝试改进它们?
我的最终目标是将文档分类为 Yes 和 No 类。欢迎任何建议。
如有需要,将提供更多示例和说明。
【问题讨论】:
-
没有“正式的”语料库清理过程。您应该检查您拥有的语料库,编制一份“有问题的事情”的列表,然后考虑您想要做什么:1)修复(如果受影响的片段数量很大),2)删除(如果数量不是这么大)。除非有明确且安全的自动方式,否则删除“坏”数据比修复更容易。你剩下的问题太宽泛了。开始清理工作,然后再提出更具体的问题。
-
@WiktorStribiżew 谢谢...你能帮忙处理正则表达式吗?第一个子弹
-
docs.python.org/2/library/re.html 包含您可以使用的正则表达式类的完整列表。例如,要删除
_word、word_和_中的下划线,您可以使用re.sub(r'(^|\s)_(\S)',r'\1\2','_word')。对于单词后的下划线:re.sub(r'(\S)_($|\s)',r'\1\2','_word')。另见stackoverflow.com/questions/525635 -
@WiktorStribiżew 该站点在您的正则表达式链接中非常有用。谢谢。在 Python 中,您可以将
\b_*(\w+?)_*\b->$1$2翻译为re.sub( r'\b_*(\w+?)_*\b' , r'\1\2' , THESTRINGTOCLEAN )。
标签: python nlp text-classification data-cleaning