本周早些时候,我发布了一个关于如何将文件中的特定单词改为数字的问题。作为我情绪分析工作的一部分。这对我来说不是正确的方法不幸的是,我把我的数据解释错了。所以我会用正确的方法重新提问。你知道吗
我有一个包含标记的特定单词列表,例如,即使是40个单词,我也会使用4个单词。我需要使用列表将tweets转换为0 1 1 0类型的格式。你知道吗
我的列表如下(每行一个单词的文本文件):
我的示例推特:
输出应为:
基本上每个数字都对应于在列表中找到标记的位置。因此,在TWEET1中,第一个“1”对应于列表中的位置1(这是笑脸),第二个数字“0”对应于列表中的位置2(不开心的笑脸),因为在tweet中找不到它,所以它变成了“0”。第三个数字是“1”,对应于列表中的第三位(happy),因为它是在tweet中找到的……它变成了“1”……我希望我能解释清楚。你知道吗
我用python编写了很多脚本/程序来处理文件中的文本,所以我想找一个python程序来帮我完成这个任务。我对python很陌生,所以我希望有人能帮我写一个脚本来实现这一点。你知道吗
我希望我解释得足够好,我花了一段时间才掌握这个概念。你知道吗
塔克斯:)
更多信息:
0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0
编辑的部分
下面给出的惊人答案并不符合标准。它非常优雅地用一个数字来代替单词。但不是我所需要的。。。。你知道吗
进一步的解释(帮助我更好地理解它的方式)。。。。。你知道吗
考虑一下:
TWEET1:“今天将是快乐的一天:)”
我希望这能更好地解释:)
注意:代码对应的是单词列表,而不是tweet中的单词。你知道吗
此处:
输出:
说明
我建议把它作为一个函数运行。但是首先您需要创建一个哈希表,其中键是您想要匹配的单词,值都是
0
。然后在函数中使用该正则表达式来查找匹配的单词,并在所有匹配项上将该匹配项的哈希表值更新为1
。完成后,可以将哈希表的值连接到一个字符串中(?<=^|\s)(\b(?:happy|kittens|[:][)])\b)\W?(?=\s|$)
(?<=^|\s)
向后看以确保单词有空格或字符串开头(
启动捕获组1\b
使用单词边界(?:
启动非捕获组happy|kittens|[:][)]
分别匹配单词happy、kittens或:))
关闭非捕获组\b
使用单词边界)
关闭捕获组1\W?
捕获任何额外的非空白字符,这会吃掉一个标点符号,可能没用,但允许额外的检查(?=\s|$)
要求单词的末尾有空格或字符串结尾示例
我不懂python,下面是我如何在Powershell中实现它的示例,说明了如何使用逻辑来显示正则表达式。你知道吗
说明
如果一定要用正则表达式,我会分两部分来做。你知道吗
第1部分将查找所有已知单词并用
1
替换。将已知的word文件读入数组,然后用regex或符号|
加入数组。然后将该字符串嵌套到正则表达式中。你知道吗(?<=^|\s)(\b(?:happy|kittens|[:][)])\b\W?)(?=\s|$)
第2部分返回并用
0
替换所有非1
。你知道吗(?<=^|\s)\b(1[^\s]+|[^1]|[^\s]{2,})\b(?=\s|$)
示例
我不知道python,但下面是一个php示例,说明它的外观。你知道吗
摘要
第1部分
(?<=^|\s)
向后看以确保单词有空格或字符串开头(
启动捕获组1\b
使用单词边界(?:
启动非捕获组happy|kittens|[:][)]
分别匹配单词happy、kittens或:))
关闭非捕获组\b
使用单词边界\W?
捕获任何额外的非空白字符,这会吃掉一个标点符号)
关闭捕获组1(?=\s|$)
要求单词的末尾有空格或字符串结尾第2部分
(?<=^|\s)
向后看以确保单词有空格或字符串开头\b
使用单词边界(
启动捕获组11[^\s]+
使用1
后跟任意数量的非空白字符,这可防止先前匹配/替换的1
被选取|
或[^1]
使用单个字符,前提是它不是1
|
或[^\s]{2,}
2个或更多非空白字符)
关闭捕获组1\b
使用单词边界(?=\s|$)
要求单词的末尾有空格或字符串结尾免责声明
如果输入字符串包含
1
,并且1
不是输入字符串的一部分,则此解决方案可能会失败。您可能需要考虑对分隔的空白进行拆分,然后对返回的数组应用逻辑。你知道吗相关问题 更多 >
编程相关推荐