1

我正在尝试将 glove.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)
4

3 回答 3

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()
于 2019-06-18T04:32:21.627 回答
0

最好从这里下载和解压: https ://nlp.stanford.edu/projects/glove

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

于 2020-07-31T13:35:00.597 回答
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 将其转换为数据框。

于 2019-05-01T17:12:00.663 回答