我在屏幕下方有大约300万个非结构化数据。我尝试使用Google优化或OpenRefine来使其正确无误。但是,我无法找到合适的方法来做到这一点。我是这个工具的新手。任何人的帮助将不胜感激。此外,这个工具处理300k记录非常慢。如果我正在尝试某些事情,需要花费大量时间来处理并提供输出。
或者请建议其他任何开源工具和技术都这样做吗?
答案 0 :(得分:0)
正如欧文在评论中所说,你的问题可能过于宽泛,无法得到可接受的答案。我们可以为您提供一般程序。
在Open Refine中,您需要根据凌乱的列创建一个列并应用转换来删除不需要的字符。您必须使用正则表达式。但为此,能够识别模式是必要的。我不清楚为什么" ST" " Nat.secu ST。"很重要,但不是"美国"在" Massy Intertech US"。甚至不是" 36"在" Plowk 36" (谷歌不知道这个词,所以我不确定是否是组织名称。)
然而,基于你的十五行,我们似乎区分了一些清晰的模式。例如,看起来你必须删除包含#的字符串末尾的标记(没有空格的字符集)。为此,Open Refine中的GREL公式可能如下所示:
value.trim().replace(/\b\w+#\w+\b$/,'')
如果你不清楚,这是一个截屏视频。
但有时公司名称可能包含#,在这种情况下,您需要创建更复杂的规则。例如,仅当字符串包含两个以上的单词时才删除标记。
if(value.split(' ').length() > 2, value.replace(/\b\w+#\w+\b$/, ''), value)
对于您将要找到的其他模式等等(例如,最后包含4个以上数字和1个数字序列的任何数字序列)
如有疑问,请随时查看Open Refine documentation。