Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

file issues #2

Open
ECNUHP opened this issue Jul 27, 2018 · 10 comments
Open

file issues #2

ECNUHP opened this issue Jul 27, 2018 · 10 comments

Comments

@ECNUHP
Copy link

ECNUHP commented Jul 27, 2018

您好,想知道训练的语料文件是什么样的呢,还有tag语料文件?

@zhangsonglei
Copy link
Owner

训练语料文件按行读取,每个gram用空格隔开。(例如:中文基于字的ngram:我 爱 自 然 语 言 处 理
中文基于词的ngram:我 爱 自然语言 处理),也可自己实现Gram接口,定义自己的gram类型,同时实现继承AbstractGramSentenceStream类,定义自己的语料读取方式。具体参考utils下的:StringGram,StringGramSentenceStream类

tag语料文件是指什么?目前该源码只提供了训练语言模型和计算句子概率的功能

@ECNUHP
Copy link
Author

ECNUHP commented Jul 27, 2018

真的很高兴收到你的回复,谢谢你的解答,我正在想着去算一个句子概率,今天看了一天你的代码,还是云里雾里的不知道怎么调用,可能我太菜了,我再研究研究。
我还有一个问题,就是:我怎么样去得到一个合适的阈值,来通过阈值去判断这句话是没有问题的。您有什么好的建议嘛。
那个tag是我在LMTrainer.java文件中看到有这种文件,我以为还有什么词性训练什么的。

@zhangsonglei
Copy link
Owner

用语言模型做句子合法性验证的话,这个方法不知道行得通不。你可以考虑下,句子的概率是若干n元的乘积,句子越长得到的概率越低,句子越短概率越高。所以有可能一个长的合法的句子的概率会比一个短的非法的句子概率还低。所以阈值跟句子长度应该有个关系,不应该是一个固定的值。这只是我的猜测,如果有理论支持的话也可以。据我听说好像有某大厂的员工用LM深度学习模型做句子合法新验证。

至于你说的LMTrainer,是我用这个模型框架训练了两个ngram模型,一个是基于词的语言模型一个是词性的语言模型。两个互不相关,只是测试下这个框架能否正常工作。

@ECNUHP
Copy link
Author

ECNUHP commented Jul 31, 2018

嗯嗯,谢谢你的解答,获益匪浅,很感谢。

@zhangsonglei
Copy link
Owner

客气了,互相学习

@ECNUHP
Copy link
Author

ECNUHP commented Aug 1, 2018

用语料去训练三元模型,打印出下面一句话,有点懵,训练模型文件也没有生成
警告: 折扣系数 1-1 越界: 0.5387755102040817 默认为1.0

@ECNUHP
Copy link
Author

ECNUHP commented Aug 2, 2018

程序运行结束后,模型文件没有生成?

@zhangsonglei
Copy link
Owner

不好意思,公司比较忙没及时回复。
警告是正常现象。至于没有模型文件没有生成,不太清楚你是怎么训练的,参数是什么。
你可以使用NGramLMTrain这个类,根据main函数中的命令行参数提示训练模型:【语料文件路径 语料文件编码 n元长度 是否按句处理Y/N 平滑方法 模型文件输出路径 模型文件类型(text/binary/object/arpa)")】

或者,训练模型后,调用AbstractNGramModelWriter的子类TextFileNGramModelWriter的persist()方法写出模型文件

@ECNUHP
Copy link
Author

ECNUHP commented Aug 3, 2018

收到您的回信已经很高兴了,很过意不去一直打扰您,我就是用NGramLMTrain 这个类,按照main函数参数提示训练模型,但是最后没有看到生成的模型文件。找不到问题在哪里?

@ECNUHP
Copy link
Author

ECNUHP commented Aug 3, 2018

可以加您微信吗,方便交流一下,我的微信号是:hp950824

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants