lsi

文本主题模型之潜在语义索引(LSI)

ぃ、小莉子 提交于 2020-03-29 07:43:42
    在文本挖掘中,主题模型是比较特殊的一块,它的思想不同于我们常用的机器学习算法,因此这里我们需要专门来总结文本主题模型的算法。本文关注于潜在语义索引算法(LSI)的原理。 1. 文本主题模型的问题特点     在数据分析中,我们经常会进行非监督学习的聚类算法,它可以对我们的特征数据进行非监督的聚类。而主题模型也是非监督的算法,目的是得到文本按照主题的概率分布。从这个方面来说,主题模型和普通的聚类算法非常的类似。但是两者其实还是有区别的。     聚类算法关注于从样本特征的相似度方面将数据聚类。比如通过数据样本之间的欧式距离,曼哈顿距离的大小聚类等。而主题模型,顾名思义,就是对文字中隐含主题的一种建模方法。比如从“人民的名义”和“达康书记”这两个词我们很容易发现对应的文本有很大的主题相关度,但是如果通过词特征来聚类的话则很难找出,因为聚类方法不能考虑到到隐含的主题这一块。     那么如何找到隐含的主题呢?这个一个大问题。常用的方法一般都是基于统计学的生成方法。即假设以一定的概率选择了一个主题,然后以一定的概率选择当前主题的词。最后这些词组成了我们当前的文本。所有词的统计概率分布可以从语料库获得,具体如何以“一定的概率选择”,这就是各种具体的主题模型算法的任务了。     当然还有一些不是基于统计的方法,比如我们下面讲到的LSI。 2. 潜在语义索引(LSI)概述    

Low Power LSI Design (review) 3

我们两清 提交于 2020-03-07 07:05:49
所以降低降低01的反转活动,在数据传输较为频繁的线上 通过改进总线上数据的编码方式 数据总线:随机变化 地址总线:按顺序变化 数据总线的低功耗方法: 1. 数据编码 解决方案一:不用补码,用带一位信号位 当两个数据之间的汉明距大于data长度的一半时,(比如1的下一个数据是-1,汉明距是7) 1. 数据的0 和 1 取反 2. 将信号位置为1,代表是反转过了的 总线bit位数+1 解决方案二:地址线用格雷码 解决方案三:如果下一位的地址是当前的地址+1 ,那么就不传输地址,仅仅传输一位表示在当前的地址位上加一。然后如果地址发生了jump 或者是branch ,则传输地址 2. 数据反演 3. ordering of data transfer 来源: CSDN 作者: noooooobKO 链接: https://blog.csdn.net/Miysuha/article/details/104696127

Low Power LSI Design (review) 2

亡梦爱人 提交于 2020-03-05 21:09:58
RC电路,放电电流 I(t)=-C*dV(t)/dt, I(t)=V(t)/R V(t)=Vdd*exp(-t/RC), when t=0, V(0)=VDD 充放电时间会导致延迟的发生 对于V(t)=0.1VDD,下降时间tf=C R ln10 R是导通电阻 对于一个NMOS,导通电阻R=1/{β(Vdd-Vthn)} Vthn是NMOS的阈值电压 所以tf=C ln10/{β(Vdd-Vthn)},Vdd越大,tf越小 β=μCoxW/L, μ是电子迁移率,Cox是门电容,W是Tr的channel宽度,l 是Tr的长度 所以降低tf的方案有 1.增大vdd 2.增大β(半导体尺寸,光刻,布图设计layout) 3.减小电容 但是Vdd大会引起能耗增加(Pdynamic正比于Vdd2) 解决方案: 1.operation isolation 检出不必要的操作,然后中止这些操作,此时Tr的反转数量减少,降低了α Fixing Data Unit 当S=11,XY信号通过输入固定单元以后的输出都是0,所以此时Unit中的Tr不会翻转 2.Pre-computation 优先计算一部分,然后通过这一部分判断是否要继续计算其他的部分 比如n-bit的比较器,先比较最高位,如果不相同的话后面的部分不需要比较了(把两个最高级之间的异或当成后面几位的比较的EN) 3.Memory

STM32 MCO输出HSE、LSI等时钟波形以及使用LSI发现内部RC震荡频率紊乱的问题

一笑奈何 提交于 2020-01-29 05:37:37
最近调试产品遇到了一个问题,现象是产品RTC计数不准,定的5s的采样周期,实际表现确是3s多,而且每次间隔还在波动,后来追查到应该是关于STM32的LSI内部RC震荡频率有时会不准,由于问题不好复现,所以采用MCO将内部RC震荡频率输出接到示波器上查看,在此记录下STM32配置MCO(基于HAL库)。 STM32是通过PA8管脚输出MCO信号的,个别大容量的型号可能有两个IO可输出MCO,我手里使用的STM32L431只有一路,调用库函数配置十分简单,只需要一句话即可: HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_LSI, RCC_MCODIV_1); 我们具体看下库函数内的内容: /** * @brief Select the clock source to output on MCO pin(PA8). * @note PA8 should be configured in alternate function mode. * @param RCC_MCOx specifies the output direction for the clock source. * For STM32L4xx family this parameter can have only one value: * @arg @ref RCC_MCO1

现代IC/LSI工艺PCB封装大全

假如想象 提交于 2020-01-05 01:27:56
1、BGA(ball grid array) 球形触点陈列,表面贴装型封装之一。在印刷基板的背面按陈列方式制作出球形凸点用 以 代替引脚,在印刷基板的正面装配LSI 芯片,然后用模压树脂或灌封方法进行密封。也 称为凸 点陈列载体(PAC)。引脚可超过200,是多引脚LSI 用的一种封装。封装本体也可做得比QFP(四侧引脚扁平封装)小。例如,引脚中心距为1.5mm 的360 引脚 BGA 仅为31mm 见方;而引脚中心距为0.5mm 的304 引脚QFP 为40mm 见方。而且BGA 不 用担心QFP 那样的引脚变形问题。该封装是美国Motorola 公司开发的,首先在便携式电话等设备中被采用,今后在美国有 可 能在个人计算机中普及。最初,BGA 的引脚(凸点)中心距为1.5mm,引脚数为225。现在 也有 一些LSI 厂家正在开发500 引脚的BGA。 BGA 的问题是回流焊后的外观检查。现在尚不清楚是否有效的外观检查方法。有的认为 ,由于焊接的中心距较大,连接可以看作是稳定的,只能通过功能检查来处理。 美国Motorola 公司把用模压树脂密封的封装称为OMPAC,而把灌封方法密封的封装称为 GPAC(见OMPAC 和GPAC)。 2、BQFP(quad flat package with bumper) 带缓冲垫的四侧引脚扁平封装。QFP 封装之一,在封装本体的四个角设置突起

python专业方向 | 文本相似度计算

拥有回忆 提交于 2019-12-04 21:05:07
作者系浙江大学生物医学工程专业的硕士在读;专注于 自然语言处理 iOS开发。 步骤 1、分词、去停用词 2、词袋模型向量化文本 3、TF-IDF模型向量化文本 4、LSI模型向量化文本 5、计算相似度 理论知识 两篇中文文本,如何计算相似度?相似度是数学上的概念,自然语言肯定无法完成,所有要把文本转化为向量。两个向量计算相似度就很简单了,欧式距离、余弦相似度等等各种方法,只需要中学水平的数学知识。 那么如何将文本表示成向量呢? 词袋模型 最简单的表示方法是词袋模型。把一篇文本想象成一个个词构成的,所有词放入一个袋子里,没有先后顺序、没有语义。 例如: John likes to watch movies. Mary likes too. John also likes to watch football games. 这两个句子,可以构建出一个词典,key为上文出现过的词,value为这个词的索引序号 {"John": 1, "likes": 2,"to": 3, "watch": 4, "movies": 5,"also": 6, "football": 7, "games": 8,"Mary": 9, "too": 10} 那么,上面两个句子用词袋模型表示成向量就是: [1, 2, 1, 1, 1, 0, 0, 0, 1, 1] [1, 1,1, 1, 0, 1, 1, 1,

python文本相似度计算

落爺英雄遲暮 提交于 2019-12-04 21:01:47
步骤 分词、去停用词 词袋模型向量化文本 TF-IDF模型向量化文本 LSI模型向量化文本 计算相似度 理论知识 两篇中文文本,如何计算相似度?相似度是数学上的概念,自然语言肯定无法完成,所有要把文本转化为向量。两个向量计算相似度就很简单了,欧式距离、余弦相似度等等各种方法,只需要中学水平的数学知识。 那么如何将文本表示成向量呢? 词袋模型 最简单的表示方法是词袋模型。把一篇文本想象成一个个词构成的,所有词放入一个袋子里,没有先后顺序、没有语义。 例如: John likes to watch movies. Mary likes too. John also likes to watch football games. 这两个句子,可以构建出一个词典,key为上文出现过的词,value为这个词的索引序号 {“John”: 1, “likes”: 2,”to”: 3, “watch”: 4, “movies”: 5,”also”: 6, “football”: 7, “games”: 8,”Mary”: 9, “too”: 10} 那么,上面两个句子用词袋模型表示成向量就是: [1, 2, 1, 1, 1, 0, 0, 0, 1, 1] [1, 1,1, 1, 0, 1, 1, 1, 0, 0] 相对于英文,中文更复杂一些,涉及到分词。准确地分词是所有中文文本分析的基础

Gensim学习笔记-2.主题与变换

匿名 (未验证) 提交于 2019-12-03 00:43:02
from pprint import pprint import warnings warnings . filterwarnings ( action = 'ignore' , category = UserWarning , module = 'gensim' ) from gensim import corpora stopWordsList = set ( 'for a of the and to in' . split ()) with open ( './Data/mycorpus.txt' , encoding = 'utf-8' ) as f : texts = [[ word for word in line . lower (). split () if word not in stopWordsList ] for line in f ] dictionary = corpora . Dictionary . load ( './Data/sampleDict.dict' ) corpus = [ dictionary . doc2bow ( doc ) for doc in texts ] pprint ( corpus ) [[( 0 , 1 ), ( 1 , 1 ), ( 2 , 1 )], [( 0 , 1 ), ( 3 , 1 ), ( 4 , 1

gensim使用方法以及例子

匿名 (未验证) 提交于 2019-12-03 00:26:01
阅读数:25007 gensim是一个python的自然语言处理库,能够将文档根据TF-IDF, LDA, LSI 等模型转化成向量模式,以便进行进一步的处理。此外,gensim还实现了word2vec功能,能够将单词转化为词向量。关于词向量的知识可以看我之前的 文章 关于gensim的使用方法,我是根据官网的资料来看的,思路也是跟着官网tutorial走的,英文好的或者感觉我写的不全面的可以去 官网 看 1. corpora 和 dictionary 1.1 基本概念和用法 corpora是gensim中的一个基本概念,是文档集的表现形式 ,也是后续进一步处理的基础。从本质上来说,corpora其实是一种格式或者说约定,其实就是一个二维矩阵。举个例子,现在有一个文档集,里面有两篇文档 hurry up rise up 1 2 这两篇文档里总共出现了3个词,hurry, rise, up。如果将这3个词映射到数字,比如说hurry, rise, up 分别对应1,2,3, 那么上述的文档集的一种表现形式可以是 1,0,1 0,1,1 1 2 那么,如何将字符串形式的文档转化成上述形式呢?这里就要提到 词典 在将文档分割成词语之后,使用 dictionary = corpora.Dictionary(texts) corpus = [dictionary.doc2bow(text)

python 文本相似度计算

荒凉一梦 提交于 2019-11-28 10:46:38
参考: python文本相似度计算 #!/usr/bin/env python # -*- coding: UTF-8 -*- import jieba from gensim import corpora,models,similarities import codecs def cut_words(file): with open(file, 'r',encoding="utf-8") as f: text = f.read() words = jieba.lcut(text) # print(len(words),words) #查看分词结果 return words def drop_Disable_Words(cut_res,stopwords): res = [] for word in cut_res: if word in stopwords or word =="\n" or word =="\u3000": continue res.append(word) #print(len(res),res) #查看去停用词结果 return res def read_stop_word(file_path): file = file_path stopwords = codecs.open(file,'r',encoding='utf8').readlines()