【发布时间】:2019-10-03 03:22:57
【问题描述】:
我有一个疯狂而疯狂的文本文件,其头部如下所示:
2016-07-01 02:50:35 <name redacted> hey
2016-07-01 02:51:26 <name redacted> waiting for plane to Edinburgh
2016-07-01 02:51:45 <name redacted> thinking about my boo
2016-07-01 02:52:07 <name reda> nothing crappy has happened, not really
2016-07-01 02:52:20 <name redac> plane went by pretty fast, didn't sleep
2016-07-01 02:54:08 <name r> no idea what time it is or where I am really
2016-07-01 02:54:17 <name redacted> just know it's london
2016-07-01 02:56:44 <name redacted> you are probably asleep
2016-07-01 02:58:45 <name redacted> I hope fish was fishy in a good eay
2016-07-01 02:58:56 <name redacted> ????
2016-07-01 02:59:34 <name redacted> ????????????
2016-07-01 03:02:48 <name > British security is a little more rigorous...
它会持续一段时间。这是一个大文件。但我觉得用 coreNLP 库或包进行注释会很困难。我正在做自然语言处理。换句话说,我很好奇我会如何剃掉,比如说,至少是日期,如果不是日期和名字的话。
但我想我需要这些名字,因为最终我希望能够成为这样的人,这个人说了 50 次,而这个人说了 75 次,等等,但这有点可能领先于我自己。
这需要正则表达式吗?我在 R 工作。
我还没有尝试过任何东西,因为我不知道从哪里开始。我将如何在 R 中编写一个仅选择性读取文本的代码?有意义地组合在一起的短语和句子?
【问题讨论】:
-
名称的长度是否一致?如图所示,它们是否包裹在插入符号中?有分隔符吗?
-
存在不一致。例如,大多数时候,一行的结尾和下一行之间没有空格,但有时,很少有。 2016-01-27 09:15:20
嘿 2016-01-27 09:15:22。所以在 Hey 和 2016 之间有一个空格,但那是因为空格是信息本身的一部分。如果消息本身没有空格,它们会像这样被挤在一起:2016-07-01 02:50:35 hey2016-07-01 02:51:26 waiting for plane to Edinburgh2016 -07-01 02:51:45 请注意,嘿就在 2016 旁边。没有空格。 -
但是名字和胡萝卜之间总是有一个空格。
这是 Google Hangouts 数据顺便说一句。结构是这样的。总是有一个日期,它在时间之前由一个空格分隔,它与名称 由一个空格分隔,该名称与消息本身由一个空格分隔,但同样,消息本身可能会也可能不会以空格结尾。 -
有趣的是,只要我将其粘贴到电子邮件甚至这些堆栈溢出框中,就会立即识别结构,并且文本框正确地格式化文本。但是,在文本文件本身中,它看起来像这样。
-
2016-07-01 23:59:27
我们俩同时签字2016-07-02 00:00:04 :-)2016- 07-02 00:00:28 我住你 supercalagraa...phragrlous...esp..dociois2016-07-02 00:12:23 我爱你 :)2016-07-02 08:57:33
标签: r regex stanford-nlp data-cleaning regex-greedy