- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Mallet 2.0.7 执行 LDA 主题建模。从训练类(class)的输出来看,我可以训练 LDA 模型并获得良好的结果。此外,我可以使用该过程中内置的推理器,并在重新处理我的训练文件时获得类似的结果。但是,如果我从较大的训练集中获取单个文件,并使用推理器对其进行处理,我会得到非常不同的结果,这并不好。
我的理解是,推理器应该使用固定模型,并且仅具有该文档的本地特征,因此我不明白为什么在处理 1 个文件或训练集中的 1k 个文件时会得到任何不同的结果。我没有进行频率截止,这似乎是一个会产生这种效果的全局操作。您可以在下面的命令中看到我使用的其他参数,但它们大多是默认的。将迭代次数更改为 0 或 100 没有帮助。
导入数据:
bin/mallet import-dir \
--input trainingDataDir \
--output train.data \
--remove-stopwords TRUE \
--keep-sequence TRUE \
--gram-sizes 1,2 \
--keep-sequence-bigrams TRUE
火车:
time ../bin/mallet train-topics
--input ../train.data \
--inferencer-filename lda-inferencer-model.mallet \
--num-top-words 50 \
--num-topics 100 \
--num-threads 3 \
--num-iterations 100 \
--doc-topics-threshold 0.1 \
--output-topic-keys topic-keys.txt \
--output-doc-topics doc-topics.txt
训练期间分配给一个文件的主题,#14 是关于 wine 的,这是正确的:
998 file:/.../29708933509685249 14 0.31684981684981683
> grep "^14\t" topic-keys.txt
14 0.5 wine spray cooking car climate top wines place live honey sticking ice prevent collection market hole climate_change winery tasting california moldova vegas horses converted paper key weather farmers_market farmers displayed wd freezing winter trouble mexico morning spring earth round mici torrey_pines barbara kinda nonstick grass slide tree exciting lots
对整个训练批处理运行推理:
../bin/mallet infer-topics \
--input ../train.data \
--inferencer lda-inferencer-model.mallet \
--output-doc-topics inf-train.1 \
--num-iterations 100
火车上的推理分数——非常相似:
998 /.../29708933509685249 14 0.37505087505087503
对仅由该 1 个 txt 文件组成的另一个训练数据文件运行推理:
../bin/mallet infer-topics \
--input ../one.data \
--inferencer lda-inferencer-model.mallet \
--output-doc-topics inf-one.2 \
--num-iterations 100
对一篇文档的推理产生主题 80 和 36,它们非常不同(14 的得分接近 0):
0 /.../29708933509685249 80 0.3184778184778185 36 0.19067969067969068
> grep "^80\t" topic-keys.txt
80 0.5 tips dog care pet safety items read policy safe offer pay avoid stay important privacy services ebay selling terms person meeting warning poster message agree sellers animals public agree_terms follow pets payment fraud made privacy_policy send description puppy emailed clicking safety_tips read_safety safe_read stay_safe services_stay payment_services transaction_payment offer_transaction classifieds_offer
最佳答案
问题是 small.data 和 one.data 训练数据文件之间不兼容。尽管我一直小心地使用所有相同的选项,但两个数据文件默认情况下将使用不同的字母表(单词和整数之间的映射)。要纠正此问题,请使用 --use-pipe-from [MALLET TRAINING FILE] 选项,然后指定其他选项似乎是不必要的。感谢大卫·米诺。
bin/mallet import-dir \
--input [trainingDataDirWithOneFile] \
--output one.data \
--use-pipe-from small.data
关于nlp - 为什么使用 MALLET 主题推断对单个文档和批量文档会得到不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7636959/
当使用模板模板参数时,我如何推断或删除模板模板的模板类型? 考虑以下 SSCCE: #include #include #include using namespace std; templat
假设我有一些特质: trait A[T] { def foo: T } 一个扩展它的类: class B[T](t: T) extends A[T] { def foo = t } 以及父特征的子特征
一边玩-rectypes在某些时候选择 OCaml 我只是迷路了。 这个表达式几乎可以打字: # fun x -> x x;; - : ('a -> 'b as 'a) -> 'b = 但是这里 O
我正在编写一个类似 CRUD 的应用程序,并且通过主键进行大量查找(主键可以有不同的类型)。所以我定义了以下类型类: {-# LANGUAGE MultiParamTypeClasses #-} cl
我已经创建了关系 A 'is functional parent of' B并定义 'has functional parent'作为 'is functional parent of' 的倒数. '
给定一个使用 Kotlin 版本 1.3.61 和 JOOQ 版本 3.13.1 的系统,这样的方法会构建 union正常查询: val selectCommonPart = coalesce
考虑以下错误代码: fun x = if (null x) then 0 else (take 50 x) : (fun (drop 50 x)) 我注意到,我可以毫无问题地将它加载到
给定一个具有以下类型的函数 a: a::x -> Bool 和以下类型的另一个函数 b: b::Bool -> y 我正在尝试找出推断以下函数类型的步骤: c =\d -> d a b 有人可以帮助解
我正在尝试使用 Infer 工具来分析我的应用代码。我关注了these steps每次我尝试运行 infer -- gradle build 时,我都会收到以下错误: infer -- gradle
所以我制作了这个模板来定义内联仿函数: template struct AsFunctor { template std::invoke_result_t operator()(A
是否可以推断 CRTP 基类中模板化成员函数的返回类型? 虽然推断参数类型效果很好,但它因返回类型而失败。考虑以下示例。 #include template struct base { tem
使用 Series.interpolate 很容易在 Pandas.DataFrame 中插入值,如何进行外推? 例如,给定一个如图所示的 DataFrame,我们如何将它外推 14 个月到 2014
我想知道为什么这不起作用(缺少参数类型)? Seq(1,2,3).toSet.map(_ + 1) 但这确实: val foo = Seq(1,2,3).toSet foo.map(_ + 1)
我没有必要使用 SQLite3 shell 工具来维护一个小型数据库。我正在使用 -header -ascii标志,尽管据我所知,这适用于任何输出选择。我正在寻找一种方法来避免对返回的任何一个值的类型
我有以下组件 type PropTypes = { items: T[], header: (item: T) => React.Element, body: (item: T) => R
我想在 Eclipse/JSDT 中指定实例变量的类型,如下例所示: /** * @constructor */ function A() { /** @type Node */
我正在用 Python 编写一个方法,它看起来像这样: def rgb_to_grayscale(image): print(image.shape) pass 此处预期的类型是 nu
我有一个 my_values 数组,我正在尝试为其推断 true_values 数组中最接近、较小的值。使用下面的 find_nearest 函数并不能完成我想要的。我如何追加它以找到最近的、较小的值
在下面的代码中: template int b(int q, const std::array& types) { int r = q; for (int t : types)
在 Pandas DataFrame 中插入 NaN 单元非常容易: In [98]: df Out[98]: neg neu pos av
我是一名优秀的程序员,十分优秀!