簡體   English   中英

令牌化-字符串到令牌數組

[英]Tokenize - String to Array of Tokens

我的代碼:

import numpy as np
import pandas
import codecs
import re

dataframe = pandas.read_csv("tmp.csv", delimiter=",")
dataset = dataframe.values
x = dataset[:,0:1]
y = dataset[:,1]

#j = 0
for data in x:
    text = str(data[0])
    tokenizer = re.compile('\W+')
    tokens = tokenizer.split(text)
    i = 0
    for token in tokens:
        tokens[i] = token.lower()
        i += 1
    data = tokens
    #x[j] = tokens
    #j += 1
    print(data)

print(x)

雖然print(data)的格式為['token1', 'token2', ...]
print(x)的格式為[["text1"], ["text2"], ...]

我想要[['token1', 'token2', ...], ['token5', 'token6', ...], ...]的形式[['token1', 'token2', ...], ['token5', 'token6', ...], ...]

x[j] = tokens而不是data = tokens具有計數索引j的data = tokensValueError: cannot copy sequence with size 4 to array axis with dimension 1返回ValueError: cannot copy sequence with size 4 to array axis with dimension 1

tmp.csv具有以下形式:具有約350萬行的圖像

我是python的新手,所以我希望任何人都可以幫助我。

您的代碼不會以任何方式修改x ,因此您在print(x)時會得到與開始時相同的列表。

您需要創建一個新列表,您將在其中存儲標記化文本(即列表列表)。 在第一個for循環之前添加x_tokens = [] ,然后在每個令牌列表x_tokens.append(tokens)附加x_tokens.append(tokens)

import numpy as np
import pandas
import codecs
import re

dataframe = pandas.read_csv("tmp.csv", delimiter=",")
dataset = dataframe.values
x = dataset[:,0:1]
y = dataset[:,1]

x_tokens = []

for data in x:
    text = str(data[0])
    tokenizer = re.compile('\W+')
    tokens = tokenizer.split(text)
    i = 0
    for token in tokens:
        tokens[i] = token.lower()
        i += 1

    x_tokens.append(tokens)

    print(tokens)

print(x_tokens)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM