【笔记】Python语言学习笔记

1.int、turple、string类型在传值时默认是不可变的,其他统统按传引用处理

2.np.zeros((3,2), dtype=float)生成的是数组而不是list

  • 所以全局list变量要想在函数里赋值应该用如下形式,即事先加一个global声明
    1
    2
    3
    4
    5
    temple = []

    def xx():
    global temple
    temple = np.zeros((3,2), dtype=float)

3.list和numpy数组互相转换

1
2
3
4
5
# List转numpy.array
temp = np.array(list1)

# numpy.array转List
arr = temp.tolist()

4.word2vec的用法

  • 导入包
    1
    from gensim.models import word2vec
  • 使用已有的语料文件训练模型
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    with open('train.txt', 'a', encoding='utf-8') as ff:
    ff.write(' '.join(data_content))

    # 加载语料
    sentences = word2vec.Text8Corpus('train.txt')
    # 训练模型

    # vector_size=32是控制生成的向量维度,默认是100
    model = word2vec.Word2Vec(sentences, vector_size=32)
    model.save('data1.model')
  • 加载之前生成的模型来将词转换成向量
    1
    2
    3
    model = word2vec.Word2Vec.load('data1.model')
    # word1就是要转换成向量的词
    model.wv[word1]
  • 获得句向量方法就是该句中所有词向量加起来再除词向量的数量
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 多采用以下形式,因为要处理下标不存在的情况
    sum_temple = np.zeros((1, 32))
    count = 0
    for element_dep in element.strip().split():
    try:
    sum_temple += model.wv[element_dep]
    count += 1
    except KeyError:
    continue
    data_vec = sum_temple / count

5.