将文本行更改为二进制类型模式

RHK*_*-S8 1 python regex

本周早些时候,我发布了一个关于如何将特定单词更改为文件中的数字的问题.作为我的情绪分析工作的一部分.不幸的是,这对我来说不是正确的方法,我解释了我的数据错误.所以我会用正确的方法提出这个问题.

我有一个包含令牌的特定单词列表,例如,我将使用4个单词,尽管它将是40个单词.我需要使用列表将推文转换为0 1 1 0类型格式.

我的列表如下(每行1个字的文本文件):

  • :)
  • :(
  • 快乐
  • 伤心

我的推文:

  • TWEET1:我发现python很酷,它让我开心:)
  • TWEET2:今天是悲伤的一天:(

输出应该是:

  • TWEET1:1 0 1 0
  • TWEET2:0 1 0 1

基本上每个数字对应于列表中找到令牌的位置.所以在TWEET1中,第一个'1'对应于列表中的第一个位置(这是笑脸),第二个数字'0'对应于列表中的第二个位置(不快乐的笑脸),并且因为它未在推特,它变成'0'.第三个数字,即'1',对应于列表中的第三个位置(快乐),因为它在推文中找到...它变为'1'.....我希望我解释它好.

我使用python编写了很多我的脚本/程序来操作我文件中的文本,所以我正在寻找一个python程序来为我做这个.我是python的新手,所以我希望有人可以帮我写一个脚本来做到这一点.

我希望我已经解释得很好,我花了一些时间来掌握这个概念.

thanx :)

更多信息:

  • 由于我的单词列表大约是40个单词,每个推文的输出将至少为40位.例如

0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0

编辑部分

下面给出的惊人答案不符合标准.它非常优雅地用数字替换单词.但不是我需要的不幸......

进一步的解释(它帮助我更好地理解它的方式).....

考虑一下:

TWEET1:"今天将是快乐的一天:)"

  • 在读取该行之前,代码设置为"0 0 0 0"
  • 它然后检查第一个'0'......这意味着:检查列表中的第一个标记(笑脸)......它可以在推文的任何地方找到吗?回答:是的.因此代码变成....'1 0 0 0'
  • 接下来我们移动到第二个'0'(对应于不快乐的脸).....我们可以在推文的任何地方找到不快乐的脸吗?答案:不....因此第二位保持'0'....我们的代码现在是'1 0 0 0'
  • 接下来我们移动到第3位,对应于"happy"这个词.这个词可以在推文的任何地方找到吗?答案:是的......我们的代码现在变为'1 0 1 0'
  • 现在我们移动到最后一个数字,对应于单词/标记'sad'......这可以在推文的任何地方找到吗?答案:没有......因此最后一位数字仍为"0"
  • 我们的最终代码变为'1 0 1 0'

我希望这更好地解释:)

注意:代码对应于单词列表,而不是对应于推文中的单词.

Len*_*bro 5

这里:

wordlist = [':)', ':(', 'happy', 'sad']
tweets = ['I find python cool, it makes me happy :)', 'today is a sad day :(']
for tweet in tweets:
    print(' '.join(['1' if word in tweet else '0' for word in wordlist]))
Run Code Online (Sandbox Code Playgroud)

输出:

1 0 1 0
0 1 0 1
Run Code Online (Sandbox Code Playgroud)