CN111881668A - 基于卡方统计和tf-crf改进的tf-idf计算模型 - Google Patents
基于卡方统计和tf-crf改进的tf-idf计算模型 Download PDFInfo
- Publication number
- CN111881668A CN111881668A CN202010783892.2A CN202010783892A CN111881668A CN 111881668 A CN111881668 A CN 111881668A CN 202010783892 A CN202010783892 A CN 202010783892A CN 111881668 A CN111881668 A CN 111881668A
- Authority
- CN
- China
- Prior art keywords
- word
- idf
- chi
- module
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及基于卡方统计和TF‑CRF改进的TF‑IDF计算模型包括:数据载入模块、TF‑IDF计算模块、卡方统计模块、CRF计算模块、权重计算模块、权重排序模块、权重筛选模块和特征词保存模块,其特征在于模型工作步骤如下:步骤1.建立用于保存筛选后特征词的.txt文本文件;步骤2.数据模块的载入;步骤3.进行TF‑IDF计算模块的运算;步骤4.进行卡方统计模块的运算;步骤5.进行CRF计算模块的运算;步骤6.进行权重计算模块的运算;步骤7.权重排序模块的运算;步骤8.进行权重筛选模块的运算;步骤9.进行词保存模块的运算;步骤10.将步骤2‑9运算筛选得到的筛选后特征词保存在步骤1建立的文档中。
Description
技术领域
本发明涉及自然语言处理技术领域,具体涉及一种基于卡方统计和TF-CRF改进的TF-IDF计算模型。
背景技术
随着信息时代的发展,各专业领域的文本数据急剧增长。因而,利用自然语言处理技术分析文本数据,来解决实际问题并提高工作效率,已经成为技术人员研究的热点之一。分析文本数据中的文本预处理阶段,特别是特征词提取部分很大程度上影响了文本数据挖掘的准确性和高效性。而通常需要特征提取的文本文件需要庞大的文本数据的支持和更新,这个时候数据处理中的特征提取部分尤为关键,它为数据挖掘提供更为精准和高效的数据筛选服务,同时其结果直接影响了后续例如信息检索、文本分类等工作的性能。网络上已知的常用特征提取的算法数不胜数,例如,TF-IDF算法、卡方检测(CHISquare,CHI)、n-gram算法和Word2Vec算法等等。其中,TF-IDF算法作为最常见的特征提取权重计算方法被广泛使用。传统TF-IDF特征提取方法在招聘网站这类文本数据提取中缺乏对类之间分布差异的体现。
现有的对文本数据进行数据预处理阶段的特征提取部分通常采用的是传统的TF-IDF算法。传统的文本特征在经过特征提取之后,会筛选出词频高的特征词汇。对词频高的特征值赋予较高的权重,这样的优势在于最大程度地体现文本数据的重要程度,提高提取出的特征词的重要性和精准性,以达到后续数据挖掘的准确性和高效性。
发明内容
针对上述现有技术中的不足,本发明提供了基于卡方统计和TF-CRF改进的TF-IDF计算模型。
(一)TF-IDF算法
在传统TF-IDF算法中,词频表示特征词在文本文件中出现的次数,通常用TF表示。如果特征词在某篇文本数据中出现的次数较多,那么该特征就能很好表达出该文本的主要信息,从而适合进行文本重要数据的提取和保存。IDF表示反文档频率。如果含有同一词语的文档的数量越多,那么该特征词的重要性越低。例如,一些人称代词,感叹词等出现的频次很多,但是对于文本的内容的重要性和精准性基本为零。该算法的计算公式如公式(1)、公式(2)所示:
公式(1)中N表示整个训练样本中文本总数,nk表示包含该特征值的文本数;公式(2)TF表示该特征词出现的频率。传统的TF-IDF算法中,TF词频统计方法用来描述高频特征,但统计出来的高频词大多是属于没有实际意义的,不能够表达文本内容的噪声词,反而一些低频词能够准确地表示文本信息却因为出现频率低地原因被省略掉。在这个情况下,增加IDF反文档频率能够有效地增强出现频率低地特征词的权重,能够部分弥补仅仅是计算TF词频的不足。因此,两者相乘,增加有效特征词的权重得到更为重要和精准的特征词,使得后续数据挖掘工作准确高效。
(二)卡方统计(CHISquare,CHI)算法
卡方统计算法(CHISquare,CHI)用于计量两个变量的偏差程度,其中理论值和实际值相互独立。如果偏差过大的画,那么这两个变量相互独立。其特征值和类别关系表如附图1所示。
表1特征和类别关系表基于特征词t的计算方式如公式(3)、(4)、(5)、(6)所示:
根据偏差计算方法计算得到类别Ci包含特征词t的偏差,如公式(7)、(8)、(9)、(10)所示:
将D11、D12、D21、D22带入并化简得到特征词t和类别Ci的CHI值,如公式(11)所示:
由公式(11)可以得到,如果特征词t和类别Ci相互独立,A*D-C*B等于0,那么CHI也等于0.如果特征词t和类别Ci越相关,那么CHI的值越大。
(三)TF-CRF算法
CRF(categoryrelevancefactors)是DengZhihong等在ALinearTextClassificationAlgorithmBasedonCategoryRelevanceFactors一文中提出。CRF体现的是特征词区分其文档所在类与其他类的能力,该方法用CRF代替了IDF,如公式(12)所示:
其中,fi表示第i个特征项,cj表示第j个类别,X表示包含该特征项fi同时属于cj类的文档数,Y表示属于cj类的文档数,U表示包含该特征项fi但不属于cj类的文档数,V表示不属于cj类的文档数。
TF-CRF算法的公式如公式(13)所示:
基于此种情况,立足于传统TF-IDF算法中根据词频来选择特征词的特性,本文提出一种新的基于卡方统计(CHISquare,CHI)和TF-CRF改进的TF-IDF算法模型。
招聘网站的文本数据分为某个大类别Ci如软件工程类别,和其他类别,进行卡方统计,弥补TF-IDF算法中没有考虑文本类别的问题以及TF-CRF算法中没有考虑全面的类别问题。将多个文本分为两个类别,属于类别Ci和不属于类别Ci,将特征值t分别与两个类别的文本文件进行对比,得到两类包含特征值t的文本和不包含特征值t的文本。这四类文本数分别相加得到四个数值A、B、C、D和一个总文本数N。根据偏差计算方式并简化,得到公在此基础上进行改进,得到公式(14)
基于卡方统计和TF-CRF改进的TF-IDF计算模型包括:数据载入模块、TF-IDF计算模块、卡方统计模块、CRF计算模块、权重计算模块、权重排序模块、权重筛选模块和特征词保存模块,
所述数据载入模块内的文本数据从多方获取,再进行分词后得到特征提取需要的数据,提取数据之后将其转换成list列表形式输入数据载入模块,
所述TF-IDF计算模块按照现有技术中TF-IDF的计算方法,得到特征词的权值;
所述卡方统计模块将获取到的文本文件数据分为两个类别,属于类别Ci和不属于类别Ci,进行卡方统计;
所述CRF计算模块在三卡方统计模块的基础上,进行CRF的计算;
所述计算权重模块为经过公式(2)、(12)、(14)得到的:
所述特征词筛选模块用于对特征词的权重进行对比,权重大于设定的权值的特征词保留,权重小于设定的权值的特征词剔除;
所述特征词保存模块用于将文本文件中筛选出来的特征词剔除权重后保存在文本文件中;
其特征在于模型工作步骤如下:
步骤1.建立用于保存筛选后特征词的.txt文本文件;
步骤2.进行数据模块的载入;
步骤3.进行TF-IDF计算模块的运算;
步骤4.进行卡方统计模块的运算;
步骤5.进行CRF计算模块的运算;
步骤6.进行权重计算模块的运算;
步骤7.进行权重排序模块的运算;
步骤8.进行权重筛选模块的运算;
步骤9.进行词保存模块的运算;
步骤10.将步骤2-9运算筛选得到的筛选后特征词保存在步骤1建立的文档中。
所述步骤2的详细步骤为:
(1)打开文本文件,进行遍历,并返回return到list_source中;
(2)在加载数据集函数loadDataSet()时,建立dataset来存储返回的list_source;
(3)同样的将同类的文本文件按照以上方式打开遍历存储到dataset,不同类的文本文件存储到datasetdif;
(4)关闭文本文件。
所述步骤3的详细步骤为:
(1)总词频统计,首先,建立doc_frequency列表来存储总的词频数,然后,遍历一个文本文件list_words的每个词word_list,再计算每个词的词频,将词频存储在doc_frequency列表中,得到它的总词频数;
(2)计算每个词的TF值。首先,建立word_tf字典来存储每个特征词的TF值,然后,循环遍历步骤(1)得到的总词频数列表,再分别除以该文本文件的总词数sum(doc_frequency.values()),得到每个词的TF值;
(3)计算每个词的IDF值。首先,建立word_idf字典来存储每个词的IDF值,word_doc列表来存储包含该词的文档数,并且使得doc_num等于总的文本文件数然后,遍历所有文本文件中的词,其中嵌套循环遍历该文本文件list_words中的特征词word_list;如果该文本中的特征词和所以文本文件中的词相等,包含该词的文档数word_doc自增1,并且立即continue跳过本次内层循环,进行下一次外层循环,即下一个文本文件的遍历,直到所有文本文件都遍历完,得到包含该词文档数word_doc列表,则进行该文本文件的另一个特征词的再次循环。最后,循环遍历得到包含该词文档数word_doc列表,进行计算总的文件数doc_num除以包含该词word_doc列表所对应该文本文件每个特征词的文档数,再对其商求对数math.log(),得到存储每个词的IDF值的word_idf字典;
(4)计算每个词的TF*IDF的值,首先,建立字典word_tf_idf来存储TF*IDF的值。然后,遍历每个特征词的TFword_tf和IDFword_idf的值,将其相乘,得到TF*IDFword_tf_idf的字典。
所述步骤4的详细步骤为:(1)赋值同类文档中包含特征值A、不同类文档中包含特征值B、同类文档中不包含特征值C、不同类文档中不包含特征值D连等于0;
(2)enumerate()函数外层遍历同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则A自增1;反之如果没有,则C自增1;
(3)同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则B自增1;反之如果没有,则D自增1;
所述步骤5的详细步骤为:
(1)赋值同类文档中包含特征值X、不同类文档中包含特征值U、同类文档数Y、不同类文档数VX连等于0;
(2)enumerate()函数外层遍历同类文本文件中所有文件的特征词,同类文档数Y自增1,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则X自增1;反之如果没有,则continue跳出当前循环;
(3)同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,不属于同类文档数V自增1,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则U自增1;反之如果没有,则continue跳出当前循环;
所述步骤6的详细步骤为:
(1)建立字典word_tf_idf_chi来存储每个特征词的权重,调用计算TF-IDF模块和卡方统计模块的函数;
(2)遍历word_tf_idf的字典,并且调用卡方(CHISquare,CHI)和CRF的函数,循环将三个数值word_tf_idf、W(CHI)和CRF相乘,得到每个特征词的权重,再循环存入字典word_tf_idf_chi中,
所述步骤7的详细步骤为:
(1)运用字典排序的sorted()函数进行排序,把sorted(word_tf_idf_chi.items(),key=operator.itemgetter(1),reverse=True)赋值给dict_feature_select;
(2)返回returndict_feature_select。
所述步骤8的详细步骤为:
(1)将所有特征词的权重赋值给features;
(2)取权重的绝对值,以免有负数产生影响特征词的筛选。运行abs()函数进行取绝对值;
(3)遍历循环,保留权重大于设定权值的特征词。
所述步骤9的详细步骤为:
(1)新建一个.txt文本文件用来保存筛选后的特征词;
(2)循环将特征词feature[i][0]按照一行一个的顺序保存到文本文件中;
(3)关闭文本文件。
本发明的有益效果:
本发明优化了提取出来的特征词的精准性和重要性,使得后续的数据挖掘更为高效和准确;
本发明解决了招聘领域中专业词汇的低频性,提高了专业特征词的权重;
本发明解决了岗位和技能等在不同类别数据中的分布程度对于权重的影响。
附图说明
图1为本发明涉及到卡方统计算法中的特征和类别关系表;
图2为本发明中模块一数据载入流程图;
图3为本发明中模块二TF-IDF计算流程图;
图4为本发明中模块三卡方统计流程图;
图5为本发明中模块四CRF计算流程图;
图6为本发明中模块五计算权重流程图;
图7为本发明中模块六权重排序流程图;
图8为本发明中模块七特征筛选流程图;
图9为本发明中模块八特征词保存流程图;
图10为本发明中八大模块功能图;
图11基于卡方统计和TF-CRF改进的TF-IDF算法模型流程图。
具体实施方式:
如图10
实施例1:
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明优化了提取出来的特征词的精准性和重要性,使得后续的数据挖掘更为高效和准确;解决了招聘领域中专业词汇的低频性,提高了专业特征词的权重;解决了岗位和技能等在不同类别数据中的分布程度对于权重的影响。
如图10八大模块功能图所示,本发明实施例提供的基于卡方统计和TF-CRF改进的TF-IDF算法模型包括七大模块:数据载入模块1、TF-IDF计算模块2、卡方统计(CHISquare,CHI)模块3、CRF计算模块4、权重计算模块5、权重排序模块6、权重筛选模块7和特征词保存模块8。
(1)数据载入模块1:用于载入模型训练的文本文件,得到的大量数据为提高后续的特征提取的准确性和稳定性。
招聘网站的文本数据主要从第三方的大型网站上面通过网络爬虫软件得到,再进行分词后得到特征提取需要的数据。因为得到的数据是已经完成分词后的,所以数据只需要转换成list列表形式进行输入。
首先,打开按照岗位类别分类的包含招聘岗位和技能的词汇的文本文件,forIinrange()进行遍历,并返回return到list_source中。然后,在加载数据集函数loadDataSet()时,建立dataset来存储返回的list_source。接下来,同样的将同类的文本文件按照以上方式打开遍历存储到dataset,不同类的文本文件存储到datasetdif。类似于信息技术类和文学类的岗位和技能数据就是属于不同类的文本文件。最后,关闭文本文件。
(2)TF-IDF计算模块2:用于将数据载入模块1读取的招聘的文本文件数据,进行TF-IDF算法的计算,得到岗位和技能特征值的TF*IDF值,实时传递给权重计算模块4。
招聘网站的文本数据,需要计算出岗位和技能等特征值的TF-IDF的权重。按照传统的TF-IDF的计算方法,得到特征词的权值,该部分暂且不考虑文本文件是否同类问题。
首先,岗位和技能的总词频统计。建立doc_frequency列表来存储总的词频数;遍历一个文本文件list_words的每个词word_list;再计算每个词的词频,将词频存储在doc_frequency列表中,得到它的总词频数。然后,计算每个词的TF值。建立word_tf字典来存储每个特征词的TF值;循环遍历第一步骤得到的总词频数列表;再分别除以该文本文件的总词数sum(doc_frequency.values()),得到每个词的TF值。接下来,计算每个词的IDF值。建立word_idf字典来存储每个词的IDF值,word_doc列表来存储包含该词的文档数,并且使得doc_num等于总的文本文件数;遍历所有文本文件中的词,其中嵌套循环遍历该文本文件list_words中的特征词word_list。如果该文本中的特征词和所以文本文件中的词相等,包含该词的文档数word_doc自增1,并且立即continue跳过本次内层循环,进行下一次外层循环,即下一个文本文件的遍历,直到所有文本文件都遍历完,得到包含该词文档数word_doc列表,则进行该文本文件的另一个特征词的再次循环;循环遍历得到包含该词文档数word_doc列表,进行计算总的文件数doc_num除以包含该词word_doc列表所对应该文本文件每个特征词的文档数,再对其商求对数math.log(),得到存储每个词的IDF值的word_idf字典。
(3)卡方统计(CHISquare,CHI)模块3:将数据载入模块1读取的招聘的文本文件数据,进行卡方统计(CHISquare,CHI)方法的计算,得到岗位和技能特征值的卡方统计量(CHI)的值,实时传递给权重计算模块4。
招聘网站的文本数据分为某个大类别Ci如软件工程类别,和其他类别,进行卡方统计,弥补TF-IDF算法中没有考虑文本类别的问题以及TF-CRF算法中没有考虑全面的类别问题。将多个文本分为两个类别,属于类别Ci和不属于类别Ci,将特征值t分别与两个类别的文本文件进行对比,得到两类包含特征值t的文本和不包含特征值t的文本。这四类文本数分别相加得到四个数值A、B、C、D和一个总文本数N。根据偏差计算方式并简化,得到公在此基础上进行改进,得到公式(14)这个算法改进了卡方统计算法的缺点三,B和C过大时对卡方统计值CHI的影响,以及缺点一,得到的CHI值过大或者过小对筛选出的特征词的影响。
首先,赋值同类文档中包含特征值A、不同类文档中包含特征值B、同类文档中不包含特征值C、不同类文档中不包含特征值D连等于0。然后,enumerate()函数外层遍历同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则A自增1;反之如果没有,则C自增1。紧接着,enumerate()函数外层遍历同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则A自增1;反之如果没有,则C自增1。并且,计算卡方统计量CHI。最后,计算改进后的卡方统计量CHI。由公式(14)可得,将W赋值给re,最后再返回re。
(4)CRF计算模块4:将TF-IDF计算模块2和卡方统计(CHISquare,CHI)模块3传递过来的数据,进行岗位和技能CRF的计算。
首先,赋值同类文档,例如,信息技术类,中包含特征值X,例如:岗位、不同类文档中包含特征值U、同类文档数Y、不同类文档数VX连等于0。然后,enumerate()函数外层遍历同类文本文件中所有文件的特征词,同类文档数Y自增1,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则X自增1;反之如果没有,则continue跳出当前循环。同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,不属于同类文档数V自增1,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则U自增1;反之如果没有,则continue跳出当前循环。最后,计算岗位和技能的CRF值,将CRF(fi,cj)=log[(X/Y)/(U/Y)]赋值给rn,最后再返回rn。
(5)权重计算模块5:将TF-IDF计算模块2和卡方统计(CHISquare,CHI)模块3,以及CRF计算模块4传递过来的数据,进行基于卡方统计和TF-CRF的TF-IDF算法岗位和技能特征词权重改进:,得到岗位和技能特征词的权重,实时传递给权重排序模块6。
首先,建立字典word_tf_idf_chi来存储每个特征词的权重,调用计算TF-IDF模块和卡方统计模块的函数。然后,遍历word_tf_idf的字典,并且调用卡方(CHISquare,CHI)的函数,循环将三个数值word_tf_idf、W(CHI)和CRF相乘,得到每个特征词的权重,再循环存入字典word_tf_idf_chi中。
(6)权重排序模块6:将权重计算模块5传递过来的数据,进行sort()函数按照岗位和技能特征词权重从大到小排序处理,实时传递给权重筛选模块7。
将招聘网站的文本数据的权重按照从大到小的顺序排列。
首先,运用字典排序的sorted()函数进行排序,把sorted(word_tf_idf_chi.items(),key=operator.itemgetter(1),reverse=True)赋值给dict_feature_select。然后,返回returndict_feature_select。
(7)权重筛选模块7:设定一个固定的权值,将权重排序模块6传递过来的数据,进行和设定的权值比较,筛选出权重大于设定权值的岗位合技能的特征词,实时传递给特征词保存模块8。
首先,将所有岗位和技能特征词的权重赋值给features。然后,取权重的绝对值,以免有负数产生影响特征词的筛选。运行abs()函数进行取绝对值。最后,遍历循环,保留权重大于设定权值的特征词。
(8)特征词保存模块8:建立并打开新的文本文件,将权重筛选模块7传递过来的数据,写入文本文件中,关闭文件。
首先,新建一个.txt文本文件用来保存筛选后的岗位和技能特征词。然后,循环将特征词feature[i][0]按照一行一个的顺序保存到文本文件中。最后,关闭文件。
实施例2:
TF-IDF计算模块、卡方统计(CHISquare,CHI)模块、CRF计算模块和计算权重模块四个模块统称TF-IDF*W(CHI)*CRF权值计算模块,是基于卡方统计和TF-CRF改进的TF-IDF算法模型的主要功能模块。
步骤1:首先,建立doc_frequency列表来存储总的词频数。然后,遍历一个文本文件list_words的每个词word_list。再计算每个词的词频,将词频存储在doc_frequency列表中,得到它的总词频数。
步骤2:首先,建立word_tf字典来存储每个特征词的TF值。然后,循环遍历步骤(1)得到的总词频数列表。再分别除以该文本文件的总词数sum(doc_frequency.values()),得到每个词的TF值。
步骤3:首先,建立word_idf字典来存储每个词的IDF值,word_doc列表来存储包含该词的文档数,并且使得doc_num等于总的文本文件数。然后,遍历所有文本文件中的词,其中嵌套循环遍历该文本文件list_words中的特征词word_list。如果该文本中的特征词和所以文本文件中的词相等,包含该词的文档数word_doc自增1,并且立即continue跳过本次内层循环,进行下一次外层循环,即下一个文本文件的遍历,直到所有文本文件都遍历完,得到包含该词文档数word_doc列表,则进行该文本文件的另一个特征词的再次循环。最后,循环遍历得到包含该词文档数word_doc列表,进行计算总的文件数doc_num除以包含该词word_doc列表所对应该文本文件每个特征词的文档数,再对其商求对数math.log(),得到存储每个词的IDF值的word_idf字典。
步骤4:计算每个词的TF*IDF的值。首先,建立字典word_tf_idf来存储TF*IDF的值。然后,遍历每个特征词的TFword_tf和IDFword_idf的值,将其相乘,得到TF*IDFword_tf_idf的字典。
步骤5:赋值同类文档中包含特征值A、不同类文档中包含特征值B、同类文档中不包含特征值C、不同类文档中不包含特征值D连等于0。
步骤6:enumerate()函数外层遍历同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则A自增1;反之如果没有,则C自增1。
步骤7:同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则B自增1;反之如果没有,则D自增1。
步骤10:赋值同类文档中包含特征值X、不同类文档中包含特征值U、同类文档数Y、不同类文档数VX连等于0。
步骤11:enumerate()函数外层遍历同类文本文件中所有文件的特征词,同类文档数Y自增1,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则X自增1;反之如果没有,则continue跳出当前循环。
步骤12:同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,不属于同类文档数V自增1,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则U自增1;反之如果没有,则continue跳出当前循环。
步骤14:建立字典word_tf_idf_chi来存储每个特征词的权重,调用计算TF-IDF模块、卡方统计模块和计算CRF模块的函数。
步骤15:遍历word_tf_idf的字典,并且调用卡方(CHISquare,CHI)和CRF的函数,循环将三个数值word_tf_idf、W(CHI)和CRF相乘,得到每个特征词的权重,再循环存入字典word_tf_idf_chi中。
实施例3:
基于卡方统计和TF-CRF改进的TF-IDF计算模型包括:数据载入模块、TF-IDF计算模块、卡方统计模块、CRF计算模块、权重计算模块、权重排序模块、权重筛选模块和特征词保存模块,
所述数据载入模块内的文本数据从多方获取,再进行分词后得到特征提取需要的数据,提取数据之后将其转换成list列表形式输入数据载入模块,
所述TF-IDF计算模块按照现有技术中TF-IDF的计算方法,得到特征词的权值;
所述卡方统计模块将获取到的文本文件数据分为两个类别,属于类别Ci和不属于类别Ci,进行卡方统计;
所述CRF计算模块在三卡方统计模块的基础上,进行CRF的计算;
所述计算权重模块为经过公式(2)、(12)、(14)得到的:
所述特征词筛选模块用于对特征词的权重进行对比,权重大于设定的权值的特征词保留,权重小于设定的权值的特征词剔除;
所述特征词保存模块用于将文本文件中筛选出来的特征词剔除权重后保存在文本文件中;
其特征在于模型工作步骤如下:
步骤1.建立用于保存筛选后特征词的.txt文本文件;
步骤2.进行数据模块的载入;
步骤3.进行TF-IDF计算模块的运算;
步骤4.进行卡方统计模块的运算;
步骤5.进行CRF计算模块的运算;
步骤6.进行权重计算模块的运算;
步骤7.进行权重排序模块的运算;
步骤8.进行权重筛选模块的运算;
步骤9.进行词保存模块的运算;
步骤10.将步骤2-9运算筛选得到的筛选后特征词保存在步骤1建立的文档中。
实施例4:
基于卡方统计和TF-CRF改进的TF-IDF计算模型包括:数据载入模块、TF-IDF计算模块、卡方统计模块、CRF计算模块、权重计算模块、权重排序模块、权重筛选模块和特征词保存模块,
所述数据载入模块内的文本数据从多方获取,再进行分词后得到特征提取需要的数据,提取数据之后将其转换成list列表形式输入数据载入模块,
所述TF-IDF计算模块按照现有技术中TF-IDF的计算方法,得到特征词的权值;
所述卡方统计模块将获取到的文本文件数据分为两个类别,属于类别Ci和不属于类别Ci,进行卡方统计;
所述CRF计算模块在三卡方统计模块的基础上,进行CRF的计算;
所述计算权重模块为经过公式(2)、(12)、(14)得到的:
所述特征词筛选模块用于对特征词的权重进行对比,权重大于设定的权值的特征词保留,权重小于设定的权值的特征词剔除;
所述特征词保存模块用于将文本文件中筛选出来的特征词剔除权重后保存在文本文件中;
其特征在于模型工作步骤如下:
步骤1.建立用于保存筛选后特征词的.txt文本文件;
步骤2.进行数据模块的载入;
步骤3.进行TF-IDF计算模块的运算;
步骤4.进行卡方统计模块的运算;
步骤5.进行CRF计算模块的运算;
步骤6.进行权重计算模块的运算;
步骤7.进行权重排序模块的运算;
步骤8.进行权重筛选模块的运算;
步骤9.进行词保存模块的运算;
步骤10.将步骤2-9运算筛选得到的筛选后特征词保存在步骤1建立的文档中。
所述步骤2的详细步骤为:
(1)打开文本文件,进行遍历,并返回return到list_source中;
(2)在加载数据集函数loadDataSet()时,建立dataset来存储返回的list_source;
(3)同样的将同类的文本文件按照以上方式打开遍历存储到dataset,不同类的文本文件存储到datasetdif;
(4)关闭文本文件。
所述步骤3的详细步骤为:
(1)总词频统计,首先,建立doc_frequency列表来存储总的词频数,然后,遍历一个文本文件list_words的每个词word_list,再计算每个词的词频,将词频存储在doc_frequency列表中,得到它的总词频数;
(2)计算每个词的TF值。首先,建立word_tf字典来存储每个特征词的TF值,然后,循环遍历步骤(1)得到的总词频数列表,再分别除以该文本文件的总词数sum(doc_frequency.values()),得到每个词的TF值;
(3)计算每个词的IDF值。首先,建立word_idf字典来存储每个词的IDF值,word_doc列表来存储包含该词的文档数,并且使得doc_num等于总的文本文件数然后,遍历所有文本文件中的词,其中嵌套循环遍历该文本文件list_words中的特征词word_list;如果该文本中的特征词和所以文本文件中的词相等,包含该词的文档数word_doc自增1,并且立即continue跳过本次内层循环,进行下一次外层循环,即下一个文本文件的遍历,直到所有文本文件都遍历完,得到包含该词文档数word_doc列表,则进行该文本文件的另一个特征词的再次循环。最后,循环遍历得到包含该词文档数word_doc列表,进行计算总的文件数doc_num除以包含该词word_doc列表所对应该文本文件每个特征词的文档数,再对其商求对数math.log(),得到存储每个词的IDF值的word_idf字典;
(4)计算每个词的TF*IDF的值,首先,建立字典word_tf_idf来存储TF*IDF的值。然后,遍历每个特征词的TFword_tf和IDFword_idf的值,将其相乘,得到TF*IDFword_tf_idf的字典。
所述步骤4的详细步骤为:(1)赋值同类文档中包含特征值A、不同类文档中包含特征值B、同类文档中不包含特征值C、不同类文档中不包含特征值D连等于0;
(2)enumerate()函数外层遍历同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则A自增1;反之如果没有,则C自增1;
(3)同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则B自增1;反之如果没有,则D自增1;
所述步骤5的详细步骤为:
(1)赋值同类文档中包含特征值X、不同类文档中包含特征值U、同类文档数Y、不同类文档数VX连等于0;
(2)enumerate()函数外层遍历同类文本文件中所有文件的特征词,同类文档数Y自增1,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则X自增1;反之如果没有,则continue跳出当前循环;
(3)同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,不属于同类文档数V自增1,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则U自增1;反之如果没有,则continue跳出当前循环;
所述步骤6的详细步骤为:
(1)建立字典word_tf_idf_chi来存储每个特征词的权重,调用计算TF-IDF模块和卡方统计模块的函数;
(2)遍历word_tf_idf的字典,并且调用卡方(CHISquare,CHI)和CRF的函数,循环将三个数值word_tf_idf、W(CHI)和CRF相乘,得到每个特征词的权重,再循环存入字典word_tf_idf_chi中,
所述步骤7的详细步骤为:
(1)运用字典排序的sorted()函数进行排序,把sorted(word_tf_idf_chi.items(),key=operator.itemgetter(1),reverse=True)赋值给dict_feature_select;
(2)返回returndict_feature_select。
所述步骤8的详细步骤为:
(1)将所有特征词的权重赋值给features;
(2)取权重的绝对值,以免有负数产生影响特征词的筛选。运行abs()函数进行取绝对值;
(3)遍历循环,保留权重大于设定权值的特征词。
所述步骤9的详细步骤为:
(1)新建一个.txt文本文件用来保存筛选后的特征词;
(2)循环将特征词feature[i][0]按照一行一个的顺序保存到文本文件中;
(3)关闭文本文件。
Claims (9)
1.基于卡方统计和TF-CRF改进的TF-IDF计算模型包括:数据载入模块、TF-IDF计算模块、卡方统计模块、CRF计算模块、权重计算模块、权重排序模块、权重筛选模块和特征词保存模块,
所述数据载入模块内的文本数据从多方获取,再进行分词后得到特征提取需要的数据,提取数据之后将其转换成list列表形式输入数据载入模块,
所述TF-IDF计算模块按照现有技术中TF-IDF的计算方法,得到特征词的权值;
所述卡方统计模块将获取到的文本文件数据分为两个类别,属于类别Ci和不属于类别Ci,进行卡方统计;
所述CRF计算模块在三卡方统计模块的基础上,进行CRF的计算;
所述计算权重模块为经过公式(2)、(12)、(14)得到的:
所述特征词筛选模块用于对特征词的权重进行对比,权重大于设定的权值的特征词保留,权重小于设定的权值的特征词剔除;
所述特征词保存模块用于将文本文件中筛选出来的特征词剔除权重后保存在文本文件中;
其特征在于模型工作步骤如下:
步骤1.建立用于保存筛选后特征词的.txt文本文件;
步骤2.进行数据模块的载入;
步骤3.进行TF-IDF计算模块的运算;
步骤4.进行卡方统计模块的运算;
步骤5.进行CRF计算模块的运算;
步骤6.进行权重计算模块的运算;
步骤7.进行权重排序模块的运算;
步骤8.进行权重筛选模块的运算;
步骤9.进行词保存模块的运算;
步骤10.将步骤2-9运算筛选得到的筛选后特征词保存在步骤1建立的文档中。
2.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤2的详细步骤为:
(1)打开文本文件,进行遍历,并返回return到list_source中;
(2)在加载数据集函数loadDataSet()时,建立dataset来存储返回的list_source;
(3)同样的将同类的文本文件按照以上方式打开遍历存储到dataset,不同类的文本文件存储到datasetdif;
(4)关闭文本文件。
3.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤3的详细步骤为:
(1)总词频统计,首先,建立doc_frequency列表来存储总的词频数,然后,遍历一个文本文件list_words的每个词word_list,再计算每个词的词频,将词频存储在doc_frequency列表中,得到它的总词频数;
(2)计算每个词的TF值,首先,建立word_tf字典来存储每个特征词的TF值,然后,循环遍历步骤(1)得到的总词频数列表,再分别除以该文本文件的总词数sum(doc_frequency.values()),得到每个词的TF值;
(3)计算每个词的IDF值,首先,建立word_idf字典来存储每个词的IDF值,word_doc列表来存储包含该词的文档数,并且使得doc_num等于总的文本文件数然后,遍历所有文本文件中的词,其中嵌套循环遍历该文本文件list_words中的特征词word_list;如果该文本中的特征词和所以文本文件中的词相等,包含该词的文档数word_doc自增1,并且立即continue跳过本次内层循环,进行下一次外层循环,即下一个文本文件的遍历,直到所有文本文件都遍历完,得到包含该词文档数word_doc列表,则进行该文本文件的另一个特征词的再次循环。最后,循环遍历得到包含该词文档数word_doc列表,进行计算总的文件数doc_num除以包含该词word_doc列表所对应该文本文件每个特征词的文档数,再对其商求对数math.log(),得到存储每个词的IDF值的word_idf字典;
(4)计算每个词的TF*IDF的值,首先,建立字典word_tf_idf来存储TF*IDF的值。然后,遍历每个特征词的TFword_tf和IDFword_idf的值,将其相乘,得到TF*IDFword_tf_idf的字典。
4.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤4的详细步骤为:(1)赋值同类文档中包含特征值A、不同类文档中包含特征值B、同类文档中不包含特征值C、不同类文档中不包含特征值D连等于0;
(2)enumerate()函数外层遍历同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则A自增1;反之如果没有,则C自增1;
(3)同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则B自增1;反之如果没有,则D自增1;
5.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤5的详细步骤为:
(1)赋值同类文档中包含特征值X、不同类文档中包含特征值U、同类文档数Y、不同类文档数VX连等于0;
(2)enumerate()函数外层遍历同类文本文件中所有文件的特征词,同类文档数Y自增1,内层循环遍历该文本文件中的特征值,如果同类文本文件中的文件中有词等于该文本文件的特征词,则X自增1;反之如果没有,则continue跳出当前循环;
(3)同上,enumerate()函数外层遍历不同类文本文件中所有文件的特征词,不属于同类文档数V自增1,内层循环遍历该文本文件中的特征值,如果不同类文本文件中的文件中有词等于该文本文件的特征词,则U自增1;反之如果没有,则continue跳出当前循环;
6.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤6的详细步骤为:
(1)建立字典word_tf_idf_chi来存储每个特征词的权重,调用计算TF-IDF模块和卡方统计模块的函数;
(2)遍历word_tf_idf的字典,并且调用卡方(CHISquare,CHI)和CRF的函数,循环将三个数值word_tf_idf、W(CHI)和CRF相乘,得到每个特征词的权重,再循环存入字典word_tf_idf_chi中。
7.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤7的详细步骤为:
(1)运用字典排序的sorted()函数进行排序,把sorted(word_tf_idf_chi.items(),key=operator.itemgetter(1),reverse=True)赋值给dict_feature_select;
(2)返回returndict_feature_select。
8.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤8的详细步骤为:
(1)将所有特征词的权重赋值给features;
(2)取权重的绝对值,以免有负数产生影响特征词的筛选。运行abs()函数进行取绝对值;
(3)遍历循环,保留权重大于设定权值的特征词。
9.根据权利要求1所述基于卡方统计和TF-CRF改进的TF-IDF计算模型,其特征在于所述步骤9的详细步骤为:
(1)新建一个.txt文本文件用来保存筛选后的特征词;
(2)循环将特征词feature[i][0]按照一行一个的顺序保存到文本文件中;
(3)关闭文本文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010783892.2A CN111881668B (zh) | 2020-08-06 | 2020-08-06 | 基于卡方统计和tf-crf改进的tf-idf计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010783892.2A CN111881668B (zh) | 2020-08-06 | 2020-08-06 | 基于卡方统计和tf-crf改进的tf-idf计算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881668A true CN111881668A (zh) | 2020-11-03 |
CN111881668B CN111881668B (zh) | 2023-06-30 |
Family
ID=73211806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010783892.2A Active CN111881668B (zh) | 2020-08-06 | 2020-08-06 | 基于卡方统计和tf-crf改进的tf-idf计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881668B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106275A (zh) * | 2013-02-08 | 2013-05-15 | 西北工业大学 | 基于特征分布信息的文本分类特征筛选方法 |
EP3104285A1 (en) * | 2015-06-10 | 2016-12-14 | Accenture Global Services Limited | System and method for automating information abstraction process for documents |
CN108255813A (zh) * | 2018-01-23 | 2018-07-06 | 重庆邮电大学 | 一种基于词频-逆文档与crf的文本匹配方法 |
CN108256029A (zh) * | 2018-01-11 | 2018-07-06 | 北京神州泰岳软件股份有限公司 | 统计分类模型训练装置及训练方法 |
CN109344238A (zh) * | 2018-09-18 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 用户问句的补词方法和装置 |
CN110222744A (zh) * | 2019-05-23 | 2019-09-10 | 成都信息工程大学 | 一种基于属性加权的朴素贝叶斯分类模型改进方法 |
US20200111023A1 (en) * | 2018-10-04 | 2020-04-09 | Accenture Global Solutions Limited | Artificial intelligence (ai)-based regulatory data processing system |
-
2020
- 2020-08-06 CN CN202010783892.2A patent/CN111881668B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106275A (zh) * | 2013-02-08 | 2013-05-15 | 西北工业大学 | 基于特征分布信息的文本分类特征筛选方法 |
EP3104285A1 (en) * | 2015-06-10 | 2016-12-14 | Accenture Global Services Limited | System and method for automating information abstraction process for documents |
CN108256029A (zh) * | 2018-01-11 | 2018-07-06 | 北京神州泰岳软件股份有限公司 | 统计分类模型训练装置及训练方法 |
CN108255813A (zh) * | 2018-01-23 | 2018-07-06 | 重庆邮电大学 | 一种基于词频-逆文档与crf的文本匹配方法 |
CN109344238A (zh) * | 2018-09-18 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 用户问句的补词方法和装置 |
US20200111023A1 (en) * | 2018-10-04 | 2020-04-09 | Accenture Global Solutions Limited | Artificial intelligence (ai)-based regulatory data processing system |
CN110222744A (zh) * | 2019-05-23 | 2019-09-10 | 成都信息工程大学 | 一种基于属性加权的朴素贝叶斯分类模型改进方法 |
Non-Patent Citations (4)
Title |
---|
PEI-YING ZHANG等: "Text Classification combined an improved CHI and category relevance factor", ADVANCED MATERIALS RESEARCH, pages 3866 * |
张小川;于旭庭;张宜浩;: "一种改进的向量空间模型的文本表示算法", 重庆理工大学学报(自然科学), vol. 31, no. 01, pages 87 * |
李鑫: "RDPA:一种基于表型文本数据的疾病—表型关联预测算法", 中国优秀硕士学位论文全文数据库信息科技辑, no. 1, pages 140 - 577 * |
路永和等: "改进 TF-IDF 算法的文本特征项权值计算方法", 图书情报工作, vol. 57, no. 3, pages 90 * |
Also Published As
Publication number | Publication date |
---|---|
CN111881668B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108573045B (zh) | 一种基于多阶指纹的比对矩阵相似度检索方法 | |
US20090106210A1 (en) | Methods and systems for database organization | |
WO2002027532A1 (en) | System and method for use in text analysis of documents and records | |
CN108717433A (zh) | 一种面向程序设计领域问答系统的知识库构建方法及装置 | |
CN104077407B (zh) | 一种智能数据搜索系统及方法 | |
CN110472203B (zh) | 一种文章的查重检测方法、装置、设备及存储介质 | |
CN111767716A (zh) | 企业多级行业信息的确定方法、装置及计算机设备 | |
CN111860981B (zh) | 一种基于lstm深度学习的企业国民行业类别预测方法及系统 | |
CN112651296A (zh) | 一种无先验知识数据质量问题自动探查方法及系统 | |
CN114817575B (zh) | 基于扩展模型的大规模电力事理图谱处理方法 | |
CN115794798A (zh) | 一种市场监管信息化标准管理与动态维护系统及方法 | |
CN113742292B (zh) | 基于ai技术的多线程数据检索及所检索数据的访问方法 | |
CN109471934B (zh) | 基于互联网的金融风险线索发掘方法 | |
CN113920366A (zh) | 一种基于机器学习的综合加权主数据识别方法 | |
CN109344400A (zh) | 一种文献入库的判断方法和装置 | |
CN111881668B (zh) | 基于卡方统计和tf-crf改进的tf-idf计算装置 | |
CN116049376A (zh) | 一种信创知识检索回复的方法、装置和系统 | |
CN114511027B (zh) | 通过大数据网络进行英语远程数据提取方法 | |
CN116108847A (zh) | 知识图谱构建方法、cwe社区描述方法以及存储介质 | |
CN115617790A (zh) | 数据仓库创建方法、电子设备及存储介质 | |
CN113987536A (zh) | 数据表中字段安全等级确定方法、装置、电子设备及介质 | |
CN113505117A (zh) | 基于数据指标的数据质量评估方法、装置、设备及介质 | |
CN110866083A (zh) | 一种电力标准结构化地址库的地址稽核方法 | |
US20050198059A1 (en) | Database and database management system | |
Luo et al. | A comparison of som based document categorization systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |