我正在尝试将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)
答案 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
解压缩后,您将从上面的链接中获取手套文件。