Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串转换为标记列表的位置_Python - Fatal编程技术网

Python 将字符串转换为标记列表的位置

Python 将字符串转换为标记列表的位置,python,Python,我有一个大约5000个独特单词/标记的列表,每个单词(一个笑脸算一个单词)每行一个。我正在尝试为python的SVM制作一些有用的东西 假设示例列表只有几个单词 happy sad is :( i the day am today :) 我的字符串是: tweets =['i am happy today :)','is today the sad day :('] 那么每个tweet的输出是: 5:1 8:1 1:1 9:1 10:1 3:1 9:1 6:1 2:1 4:1 请注意这种格

我有一个大约5000个独特单词/标记的列表,每个单词(一个笑脸算一个单词)每行一个。我正在尝试为python的SVM制作一些有用的东西

假设示例列表只有几个单词

happy
sad
is
:(
i
the
day
am
today
:)
我的字符串是:

tweets =['i am happy today :)','is today the sad day :(']
那么每个tweet的输出是:

5:1 8:1 1:1 9:1 10:1
3:1 9:1 6:1 2:1 4:1
请注意这种格式:,这意味着冒号前的第一个数字,应该使用其在列表中的行号/位置来引用单词。e、 g.“:)”是列表中的第十个单词(文本文件,每行1个标记)

我正在考虑创建一个函数来读取文本文件,并将每行(每个单词/标记)放在列表或字典中的一个位置,这样我就可以从每个tweet中读取一个单词,并根据其在列表中的位置将其转换为一个数字

有人知道如何在python中实现这一点吗? 然后我在想这样的事情:

 for i in tweets:
         <translate-words-into-list-position>
对于tweets中的i:
如果Word是一个
文件
您仍然可以将其用于此解决方案,请记住
.rstrip('\n')
行。例如

with open('words.txt', 'rU') as f:
    d = {w.rstrip('\n'): i for i, w in enumerate(f, start=1)}
如果Word是一个
文件
您仍然可以将其用于此解决方案,请记住
.rstrip('\n')
行。例如

with open('words.txt', 'rU') as f:
    d = {w.rstrip('\n'): i for i, w in enumerate(f, start=1)}

因此,如果单词是一个文本文件(每行1个单词),它应该类似于
words=open(“wordlist.txt”)
,然后使用
.rstrip('\n')
以哪种方式?@RHK-S8可以,但最好使用
with
块,该块自动调用文件上的
.close()
,我已更新代码我已将
单词
替换为
f
,但给出了一个错误。它现在可以工作了,但我在主打印“”中收到下一个错误`File“test.py”,第7行。join(['{0}:1'。tweet.split()]中w的格式(d[w]))keyror:'i'`@RHK-S8字典中不存在单词
i
?在那种情况下你想怎么办?您可以选择将所有单词以大小写形式保存在nstivie中,例如
d={w.lower().rstrip('\n'):枚举(f,start=1)}
中的i为i,w,然后选中
d[c.lower()]
,如果键索引不存在,您也可以提供默认参数,例如
d.get(c,'NOT FOUND')
列表是在windows中创建的,因此问题就出现了……但我解决了:)所以如果word是一个文本文件(每行1个单词),它应该类似于
words=open(“wordlist.txt”)
,然后使用
.rstrip('\n')
以哪种方式?@RHK-S8没关系,但最好使用
块,该块会自动调用文件上的
.close()
,我已更新代码我已将
单词
替换为
f
,但给出了一个错误。它现在可以工作了,但我在主打印“”中收到下一个错误`File“test.py”,第7行。join(['{0}:1'。tweet.split()]中w的格式(d[w]))keyror:'i'`@RHK-S8字典中不存在单词
i
?在那种情况下你想怎么办?您可以选择将所有单词以大小写形式保存在nstivie中,例如
d={w.lower().rstrip('\n'):枚举(f,start=1)}
中的i为i,w,然后选中
d[c.lower()]
,如果键索引不存在,您也可以提供默认参数,例如
d.get(c,'NOT FOUND')
列表是在windows中创建的,因此出现了问题……但我解决了:)
>>> from itertools import count
>>> D = dict(zip(words, count(1)))
>>> tweets =['i am happy today :)','is today the sad day :(']
>>> [["{}:1".format(D[k]) for k in t.split() if k in D] for t in tweets]
[['5:1', '8:1', '1:1', '9:1', '10:1'], ['3:1', '9:1', '6:1', '2:1', '7:1', '4:1']]