无法读取熊猫数据框中的Gloves.6B.300d.txt

时间:2019-05-01 13:38:04

标签: python-3.x pandas glove

我正在尝试将Gloves.6B.300d.txt文件读入Pandas数据框。 (可以从此处下载文件:https://github.com/stanfordnlp/GloVe

以下是我遇到的例外情况:

glove = pd.read_csv(filename, sep = ' ')
ParserError: Error tokenizing data. C error: EOF inside string starting at line 8

glove = pd.read_csv(filename, sep = ' ', engine = 'python')
ParserError: field larger than field limit (131072)

3 个答案:

答案 0 :(得分:0)

我建议您将手套文件读入字典。使用这种预训练的嵌入更加方便和有效。

embeddings_index = {}
f = open(os.path.join(filename), encoding='utf8')
for line in f:
    values = line.split()
    word = values[0]
    coefs = np.asarray(values[1:], dtype='float32')
    embeddings_index[word] = coefs
f.close()

如果您的任务需要数据框版本,则可以通过迭代字典中的键val将其转换为数据框。

答案 1 :(得分:0)

作为dict加载手套嵌入的示例代码。

def load_glove_index():
    EMBEDDING_FILE = '../input/embeddings/glove.840B.300d/glove.840B.300d.txt'
    def get_coefs(word,*arr): return word, np.asarray(arr, dtype='float32')[:300]
    embeddings_index = dict(get_coefs(*o.split(" ")) for o in open(EMBEDDING_FILE))
    return embeddings_index

glove_embedding_index = load_glove_index()

答案 2 :(得分:0)

最好从此处下载并解压缩: https://nlp.stanford.edu/projects/glove

解压缩后,您将从上面的链接中获取手套文件。