1.不同方式训练出来的词向量哪个效果会更好?
就上面的word和word+ngram,这能有什么区别呢?哪个效果会更好呢?
我就先用这个最简单的了,word,量比较少。
2.textRank基本原理
https://blog.csdn.net/wotui1842/article/details/80351386 待看
3.bert中怎么使用词向量呢?
先预加载一下,
4.加载预训练好的词向量
import gensim # 导入模型 model = gensim.models.word2vec.Word2Vec.load('sgns.weibo.word') # 返回一个词 的向量: print(model['我'])
首先尝试了上面这样加载,但是因为并不是使用save保存的bin文件,所以出现下面错误:
UnpicklingError: could not find MARK
https://stackoverflow.com/questions/44022180/unpickling-error-while-using-word2vec-load,这里面提到说要配套使用,文件要是model.bin这样。
https://blog.csdn.net/u010700066/article/details/83070102 这个讲了Word2VecKeyedVectors,蛮不错的!
忽然有一点懵。。。
上面的保存和加载方式是针对模型,下面的是针对单词向量,这两个类是不同的。
针对Word2VecKeyedVectors提到了,有一个属性wv:
model_w2v.wv.most_similar("民生银行") # 找最相似的词 model_w2v.wv.get_vector("民生银行") # 查看向量 model_w2v.wv.syn0 # model_w2v.wv.vectors 一样都是查看向量 model_w2v.wv.vocab # 查看词和对应向量 model_w2v.wv.index2word # 每个index对应的词
但是我跑之后会出现以下警告:
DeprecationWarning: Call to deprecated `wv` (Attribute will be removed in 4.0.0, use self instead).
所以就直接去掉wv即可,直接用:
model.index2entity[0] n(model.index2entity)#195202个词
5.jieba 初次尝试
import jieba tt="2020年的第一天发烧,姨妈来难受???" text=jieba.cut(tt) text #<generator object Tokenizer.cut at 0x7fd8e1757f50> #text是一个生成器 words=[t for t in text] words #Building prefix dict from the default dictionary ... #Dumping model to file cache /tmp/jieba.cache #Loading model cost 0.694 seconds. #Prefix dict has been built successfully. ['2020', '年', '的', '第一天', '发烧', ',', '姨妈', '来', '难受', '?', '?', '?']
分的还不错呢!
6.word2vec 如何处理未登录词
https://www.zhihu.com/question/308543084 待看
但是我目前的一个小问题是,如果我的词没有在vocab中,那这个id要映射为多少呢?这个vocab中是否有UNK呢?对于英文来说是UNK,但是对于中文来说,由哪个来表示未登录词呢?
等一下再来处理吧。
https://www.jianshu.com/p/ce630c198762
7.GMM-UBM模型
https://blog.csdn.net/weixin_38206214/article/details/81084456
主要思想就是,先用一些其他背景数据去训练一个UBM,它是一个GMM模型,然后再用目标数据去和UBM计算出新的参数,将新参数与UBM融合。
4-29日————————————————
1.raise NotImplementedError
在用户定义的基类中,当抽象方法要求派生类覆盖该方法时,或者在开发该类以指示仍需要添加实际实现时,应引发此异常。
https://stackoverflow.com/questions/44315961/when-to-use-raise-notimplementederror/44316202
就是对于基类中的方法,如果要子类去实现,那么就可以加上这一句。
2.inspect.getfullargspec
https://blog.csdn.net/nmgcfyxl/article/details/102642818 原来它可以获取到模型的参数啊。
from inspect import getfullargspec class A: def __init__(self, a: int, b, c, d=20, **kwargs1) -> None: ... print(getfullargspec(A.__init__))#这里使用时后面是没有()的 #输出: FullArgSpec(args=['self', 'a', 'b', 'c', 'd'], varargs=None, varkw='kwargs1', defaults=(20,), kwonlyargs=[],
kwonlydefaults=None, annotations={'return': None, 'a': <class 'int'>})
args就可以获取到函数的参数了。
4.python tarfile 包
https://www.cnblogs.com/shona/p/11953678.html
主要是处理tgz压缩包等,可以解压也可以压缩文件。具体待学习.
6.np.ceil()向上取整
import numpy as np n = np.array([-1.7, -2.5, -0.2, 0.6, 1.2, 2.7, 11]) ceil = np.ceil(n) print(ceil) # [ -1. -2. -0. 1. 2. 3. 11.]
https://blog.csdn.net/tz_zs/article/details/80775256
还有四舍五入around,向下取整floor,where条件选取。