Pre_processing - HongkuanZhang/Technique-Notes GitHub Wiki

使用fasttext的与训练模型

  • 预训练模型一般为.vec.gz的文件, 里面实际上都是word和对应的向量
    处理方法如下:
import io
def load_vectors(fname):
   fin = io.open(fname, ‘r’, encoding=‘utf-8’, newline='\n', errors='ignore')
   n, d = map(int, fin.readline().split())
   data = {}
   for line in fin:
       tokens = line.rstrip().split(' ’)
       data[tokens[0]] = map(float, tokens[1:])
   return data

  最后只要 data=load_vectors(‘xxx.vec.gz’)就可以得到下面的结果了

  • 若想保存模型或者输出为word2vec的格式, 需要如下操作:
import gensim
model = gensim.models.KeyedVectors.load_word2vec_format(‘cc.ja.300.vec’,binary=False)
model.wv.save_word2vec_format(‘word2vec.txt’,binary=False) (edited) 
  • 如果不输出,取单词向量的过程如下:

读取NER的txt文件

  • splitlines()
    用read + splitlines读取每一行数据比readlines()要好, 两者并不等价, 即:
with open('filename.txt') as f:
     a = f.readlines()
     b = f.read().splitlines() # 这里b其实为空list(因为上面readlines之后文件就关闭了), 只是写在一起为了说明a != b
                               # 区别是b中的每一行的结尾的'\n'都被替换成空字符''