我在网上搜索了关于文件长度差别很大的情况下的tf等级标准化(例如,文件长度从500字到2500字不等)
唯一正规化我发现谈论将术语频率除以文档的长度,因此导致文档的长度没有任何意义.
这种方法对于规范化tf来说是一个非常糟糕的方法.如果有的话,它会导致每个文档的tf等级具有非常大的偏差(除非所有文档都是从几乎相同的字典构造的,使用tf-idf时不是这种情况)
例如,我们可以获取2个文档 - 一个包含100个唯一单词,另一个包含1000个唯一单词.doc1中的每个单词的tf值为0.01,而在doc2中,每个单词的tf值为0.001
当使用doc1与doc2匹配单词时,这会导致tf-idf等级自动变大
有没有人有任何更合适的正规化配方?
谢谢
编辑 我还看到一种方法,说明我们应该将术语频率除以每个文档的doc的最大术语频率,这也解决了我的问题
我在想的是,计算所有文档的最大术语频率,然后通过将每个术语频率除以最大值来对所有术语进行归一化
我很想知道你的想法
我正在使用带有 babel 和 react js 的节点 js 服务器构建 Web 应用程序。
在某些页面中,我使用 react-bootstrap-table 标签来创建一个包含内置数据过滤器的表(如下所示),我有两个主要问题:1. 标题与数据列未对齐 - bootstrap 表标签转换为 2 个 html 表标签,我认为这首先是导致问题的原因。我已经阅读了一些关于这个问题的帖子,它应该在 2.0.0 版中修复,我使用的是 2.9.0 版
我添加了呈现的 html 的源代码和显示表格的屏幕截图(我提前抱歉,但图像中的文本主要是希伯来语,但了解这个想法并不重要)
renderTable: function () {
return (
<div >
<button className="w3-btn w3-theme-d5 w3-margin-top w3-round-xxlarge" onClick={this.onClickAddButton}> + </button>
<BootstrapTable data={this.state.users} options={options} bordered={false} hover striped search searchPlaceholder={constantStrings.search_string}>
<TableHeaderColumn
dataField = 'personal.id'
dataAlign = 'right'
dataSort = {true}
filter = { {type: 'TextFilter', placeholder:constantStrings.enterID_string} }
isKey = {true}>
{constantStrings.userID_string}
</TableHeaderColumn>
<TableHeaderColumn
dataField = …Run Code Online (Sandbox Code Playgroud)