Advertisement

零基础入门NLP-新闻文本分类

阅读量:

TF-IDF分数由两个主要组成部分构成:第一部分是词频(Term Frequency),第二部分是逆文档频度(Inverse Document Frequency)。其中通过计算语料库中全部文本总数与包含该关键词的相关文本数量之比,并进而取自然对数即为逆文档频度。

复制代码
 TF(t)= 该词语在当前文档出现的次数 / 当前文档中词语的总数

    
 IDF(t)= log_e(文档总数 / 出现该词语的文档总数)

1、TF-IDF主要参数

norm: 'l1', 'l2', or None,optional

范数用于标准化词条向量。None为不归一化

ngram_range等于一个表示最小值与最大值范围的元组,在该区间内的所有整数中提取所有可能的n-gram值

max_df 是一个取值范围为[0.0, 1.0]之间的浮点数或整数,默认设为1.0。
在构建词汇表的过程中,在构建词汇表的过程中,
将超出给定阈值的所有文档频率词条排除在外,
并排除语料中的停用词。
若为浮点数,则表示在语料中占比例,
整型则表示具体数量。
如果所指定的词汇表不为空,
则此参数将被忽略。

token_pattern :string
正则表达式显示了”token“的构成,仅当analyzer == ‘word’时才被使用。两个或多个字母数字字符的正则表达式(标点符号完全被忽略,始终被视为一个标记分隔符)。这个参数使用正则表达式来分词,其默认参数为r"(?u)\b\w\w+\b",其中的两个\w决定了其匹配长度至少为2的单词,所以这边减到1个。

stop_words 被定义为字符串类型的集合{'english'}, list或None(默认情况下)。
当参数不指定为'english'时,默认启用英语内建停用词列表。
当参数不指定为列表时,默认假设该列表包含所有停用词。
当参数设置为None时,默认不再过滤停用词。

注:IDF分母部分有时会+1,根据参数决定

2、TF-IDF参数

These variables are assigned by partitioning the text and label data from the training DataFrame using the train_test_split function with a test size of 0.2, shuffling the dataset, and setting a fixed seed value of 42.

TF-IDF模型被初始化为以下参数配置:
- n-gram范围设置为(1到3)
- 最大特征数量设定为3000
- 正则表达式模式设为r"(?u)\b\w+\b"
- 停用词列表设定为[3750, 900, 648]
- 最大文档频率设为
训练数据集经过TF-IDF转换器进行拟合并转换得到训练特征矩阵
验证数据集则通过同样的TF-IDF转换器直接转换得到其特征表示

因本地资源紧张,结合lightgbm模型求得线下分数:0.9259,testA:0.9289,略有提升

全部评论 (0)

还没有任何评论哟~