python - 在 gensim 中正确标记数据
问题描述
我对如何在gensim
. 我有一个 myfile.txt
包含以下文本的文本文件
"""
this is a very long string with a title
and some white space. Multiple sentences, too. This is nuts!
Yay! :):):)
"""
我加载这个文件gensim
来LineReader('myfile.txt')
训练word2vec
模型(当然我的数据比上面的例子大得多)
但是这个文本是否被正确地标记了?我问这个是因为LineReader
似乎非常具体:
路径中文件(文本或压缩文本文件)的格式是一句话 = 一行,其中单词已经过预处理并由空格分隔。见https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.LineSentence
我很困惑。我做的事情对吗?我应该如何标记我的文本LineReader
?
谢谢!
解决方案
这会起作用,但是因为 Gensim 的LineSentence
课程(我假设你的意思)打破了空格上的标记,你的行......
and some white space. Multiple sentences, too. This is nuts!
...将成为单词标记列表:
['and', 'some', 'white', 'space.', 'Multiple',
'sentences,', 'too.', 'This', 'is', 'nuts!']
这意味着像'space.'
, 'sentences,'
, &这样的标记'nuts!'
将被视为单词——甚至可能会接收经过训练的单词向量(如果它们至少出现min_count
多次)。
这可能不是你想要的——但也不一定是一个大问题。在足够大的语料库中,您关心的所有单词都会出现很多次,而没有这个连接标点符号问题,您可能仍然会为它们获得好的向量。
但更典型的是,您会预处理您的文本以去除该标点符号,或者将其与带有额外空格分隔符的单词分开。(当你这样做时,标点符号本身就变成了某种“单词”。)
推荐阅读
- visual-studio-code - 如何强制 VSCode 的 Tailwind CSS IntelliSense 扩展与 .html.eex 和 .html.leex 文件一起使用?
- ruby-on-rails - Rails 中电话号码的自定义验证
- python - 将数据框的两列与新的数据框列进行比较
- c# - Angular 将 json 字符串转换为类型化数组
- html - 如何从 json 数据中检索数据
- excel - 解析 word docx 文件以将特定标题段落复制到 xlsx excel 文件中
- javascript - 如何在 node.js 中加载 CSS 文件?
- android - 未找到资源崩溃。该项目根本不包含对 design_ic_visibility 文件的引用
- redirect - URL 仅重写 html 页面
- laravel - 中间件中的 Null Auth 用户