将 <start> 和 <end> 标记添加到标记化文档的行
Adding <start> and <end> tokens to lines of a tokenized document
如果我犯了一个极其微不足道的错误,我深表歉意!本质上,我有一个标记化的下载文档(我使用 NLTK 以正常方式对其进行标记化,即 tokens = word_tokenize(f.read())
,意思是 tokens
是一个列表)。我想在每行的开头和结尾添加开始和结束标记。我还有一本字典 vocab
,它听起来像(将每个单词存储在文档中)。
我试过的两件事是:
for line in tokens:
line.insert(0,'<start>')
line.insert(len(line)-1,'<end>')
vocab['<start>']+=1
vocab['<end>']+=1
和:
for line in tokens:
line=['<start>']+line+['<end>']
vocab['<start>']+=1
vocab['<end>']+=1
如果我使用 .insert() 方法,我会得到 AttributeError: 'str' object has no attribute 'insert'
。如果我尝试将 start/end 标记连接到标记列表中的每一行,我会得到 TypeError: can only concatenate list (not "str") to list.
不太确定如何解决此问题,因此我将不胜感激 :)
试试这个。
for i in range(len(tokens)):
tokens[i] = '<start>' + tokens[i] + '<end>'
vocab['<start>']+=1
vocab['<end>']+=1
基本上它所做的是遍历每一行并向每一行添加开始和结束标记。使用range(len(tokens)),可以直接改变元素在tokens中的值。
如果我犯了一个极其微不足道的错误,我深表歉意!本质上,我有一个标记化的下载文档(我使用 NLTK 以正常方式对其进行标记化,即 tokens = word_tokenize(f.read())
,意思是 tokens
是一个列表)。我想在每行的开头和结尾添加开始和结束标记。我还有一本字典 vocab
,它听起来像(将每个单词存储在文档中)。
我试过的两件事是:
for line in tokens:
line.insert(0,'<start>')
line.insert(len(line)-1,'<end>')
vocab['<start>']+=1
vocab['<end>']+=1
和:
for line in tokens:
line=['<start>']+line+['<end>']
vocab['<start>']+=1
vocab['<end>']+=1
如果我使用 .insert() 方法,我会得到 AttributeError: 'str' object has no attribute 'insert'
。如果我尝试将 start/end 标记连接到标记列表中的每一行,我会得到 TypeError: can only concatenate list (not "str") to list.
不太确定如何解决此问题,因此我将不胜感激 :)
试试这个。
for i in range(len(tokens)):
tokens[i] = '<start>' + tokens[i] + '<end>'
vocab['<start>']+=1
vocab['<end>']+=1
基本上它所做的是遍历每一行并向每一行添加开始和结束标记。使用range(len(tokens)),可以直接改变元素在tokens中的值。