<a href="https://devmount.github.io/GermanWordEmbeddings/#download" title="german.model 下载次数">
</a>
关于英语语料库词嵌入训练的研究已有很多。这个工具包通过gensim的word2vec对德语语料库应用深度学习,以训练和评估德语语言模型。项目概述、评估结果和下载链接可以在项目网站或直接在本仓库中找到。
本项目基于MIT许可证发布。
确保您已安装Python 3以及以下库:
pip install gensim nltk matplotlib numpy scipy scikit-learn
现在您可以下载word2vec_german.sh
并在shell中执行,以自动下载此工具包和相应的语料库文件,并进行模型训练和评估。请注意,这可能需要大量时间!
您也可以克隆此仓库并使用我已经训练好的模型来尝试评估和可视化。
如果您只想了解不同Python脚本的工作原理,请查看代码目录以查看Jupyter Notebook脚本输出示例。
有多种方法可以获取公开可用且免费使用的大型德语语料库:
wget https://dumps.wikimedia.org/dewiki/latest/dewiki-latest-pages-articles.xml.bz2
2007年至2013年的随机德语新闻:
for i in 2007 2008 2009 2010 2011 2012 2013; do wget http://www.statmt.org/wmt14/training-monolingual-news-crawl/news.$i.de.shuffled.gz done
使用此工具包训练的模型基于德语维基百科和2013年的德语新闻。
该工具使用WikipediaExtractor(Giuseppe Attardi的Python脚本,用于过滤Wikipedia XML转储,基于GPLv3许可)和一些shell指令来预处理原始的维基百科XML语料库,以过滤所有XML标签和引号:
wget http://medialab.di.unipi.it/Project/SemaWiki/Tools/WikiExtractor.py python WikiExtractor.py -c -b 25M -o extracted dewiki-latest-pages-articles.xml.bz2 find extracted -name '*bz2' \! -exec bzip2 -k -c -d {} \; > dewiki.xml sed -i 's/<[^>]*>//g' dewiki.xml sed -i 's|["'\''„"‚']||g' dewiki.xml rm -rf extracted
德语新闻已经包含每行一个句子,没有任何XML语法开销。只需要删除引号:
for i in 2007 2008 2009 2010 2011 2012 2013; do gzip -d news.$i.de.shuffled.gz sed -i 's|["'\''„"‚']||g' news.$i.de.shuffled done
之后,可以使用以下选项在这些语料库文件上调用 preprocessing.py
脚本:
标志 | 默认值 | 描述 |
---|---|---|
-h, --help | - | 显示帮助信息并退出 |
-p, --punctuation | False | 过滤标点符号标记 |
-s, --stopwords | False | 过滤停用词标记 |
-u, --umlauts | False | 将德语变音替换为相应的二合字母 |
-b, --bigram | False | 检测并处理常见的二元词组 |
-t [ ], --threads [ ] | 处理器数量 | 工作线程数 |
--batch_size [ ] | 32 | 句子处理的批处理大小 |
使用示例:
python preprocessing.py dewiki.xml corpus/dewiki.corpus -psub for file in *.shuffled; do python preprocessing.py $file corpus/$file.corpus -psub; done
使用 training.py
脚本训练模型,可选参数如下:
标志 | 默认值 | 描述 |
---|---|---|
-h, --help | - | 显示此帮助信息并退出 |
-s [ ], --size [ ] | 100 | 词向量的维度 |
-w [ ], --window [ ] | 5 | 滑动窗口的大小 |
-m [ ], --mincount [ ] | 5 | 考虑一个词的最小出现次数 |
-t [ ], --threads [ ] | 处理器数量 | 用于训练模型的工作线程数 |
-g [ ], --sg [ ] | 1 | 训练算法:Skip-Gram (1),否则CBOW (0) |
-i [ ], --hs [ ] | 1 | 使用层次采样进行训练 |
-n [ ], --negative [ ] | 0 | 使用负采样进行训练(通常在5-20之间) |
-o [ ], --cbowmean [ ] | 0 | 对于CBOW训练算法:使用和(0)或平均值(1)合并上下文向量 |
使用示例:
python training.py corpus/ my.model -s 200 -w 5
请注意,第一个参数是一个目录,其中包含的每个文件都将被视为训练的语料库文件。
如果需要测量并存储训练模型所需的时间,可以使用以下命令:
{ time python training.py corpus/ my.model -s 200 -w 5; } 2>> my.model.result
要计算给定语料库的词汇表,可以使用 vocabulary.py
脚本:
python vocabulary.py my.model my.model.vocab
要创建测试集并评估训练好的模型,可以使用 evaluation.py
脚本。可以评估训练模型的语法和语义特征。为了成功创建测试集,在启动脚本之前应该创建以下源文件(有关更多信息,请参见脚本中的配置部分)。
通过语法测试,可以评估单数、复数、第三人称、过去时、比较级或最高级等特征。因此有3个源文件:形容词、名词和动词。每个文件每行包含一个唯一的词及其变位形式,用破折号分隔。这些组合模式可以在脚本配置中的 PATTERN_SYN
常量中输入。脚本现在根据给定的模式将每个词与5个随机的其他词组合,以创建适当的类比问题。一旦创建了包含问题的数据文件,就可以进行评估。通常,评估可以通过 gensim 的 word2vec 准确度函数 完成,但为了获得更具体的评估结果(正确匹配、前 n 个匹配和覆盖率),本项目使用自己的准确度函数(test_mostsimilar_groups()
和 test_mostsimilar()
,在 evaluation.py
中)。
该项目提供的源文件包含100个唯一名词和2种模式,100个唯一形容词和6种模式,以及100个唯一动词和12种模式,共产生1万个类比问题。以下是可能的源文件示例:
可能的模式:基本形-比较级-最高级
示例内容:
好-更好-最好 大声-更大声-最大声
可能的模式:单数-复数
示例内容:
图片-图片们 名字-名字们
可能的模式:基本形-第一人称单数现在时-第二人称复数现在时-第三人称单数过去时-第三人称复数过去时
示例内容:
找到-我找到-你们找到-他找到-他们找到 搜索-我搜索-你们搜索-他搜索-他们搜索
通过语义测试,可以评估涉及词义的特征。因此有3个源文件:相反词、最佳匹配和不匹配。给定的源文件总共产生950个语义问题。
此文件包含相反词,每行遵循一个词-相反词
的模式,用于评估模型寻找相反词的能力。脚本将每对词与10个随机的其他对组合,以构建类比问题。本项目提供的相反词源文件包含30个唯一对,产生300个类比问题。
示例内容:
夏天-冬天 白天-黑夜
此文件包含内容相似的词对组,用于评估模型寻找主题 相关类比的能力。脚本将每对词与同组的所有其他对组合,以构建类比问题。本项目提供的最佳匹配源文件包含7组,共77个唯一对,产生540个类比问题。
示例内容:
: 政治 伊丽莎白-女王 查尔斯-王子 : 科技 安卓-谷歌 iOS-苹果 Windows-微软
此文件每行包含3个内容相似的词(用空格分隔)和一组不匹配的词(用破折号分隔),格式如匹配词1 匹配词2 匹配词3 不匹配词1-不匹配词2-...-不匹配词n
。这用于测试模型在4个词中找出最不匹配词的能力。脚本将每个匹配的三元组与破折号分隔的不匹配词列表中的每个词组合,以构建不匹配问题。本项目提供的不匹配源文件包含11个三元组,每个三元组有10个不匹配的词,产生110个问题。
示例内容:
兔子 狗 猫 树-主人-大象-食物-房子-人-动物-宠物店-草地-动物园 八月 四月 九月 年-月-日-小时-分钟-时间-日历-周-季度-时钟
可以使用以下选项执行脚本:
标志 | 描述 |
---|---|
-h, --help | 显示帮助信息并退出 |
-c, --create | 如果设置,在评估前创建测试集 |
-u, --umlauts | 如果设置,创建带有转换元音的附加测试集和/或使用它们 |
使用示例:
python evaluation.py my.model -u
注意:只有文件类型为.bin
、.model
或没有任何后缀的文件被视为二进制文件。
使用此工具包基于德语维基百科(2015年5月15日)和2013年德语新闻文章(2015年5月15日)训练的优化德语语言模型可以在此下载:
german.model [704 MB]
如果您想将此项目用于自己的工作,可以使用以下BibTex条目进行引用:
@thesis{mueller2015, author = {{Müller}, Andreas}, title = "{Analyse von Wort-Vektoren deutscher Textkorpora}", school = {柏林工业大学}, year = 2015, month = jun, type = {学士论文}, url = {https://devmount.github.io/GermanWordEmbeddings} }
GermanWordEmbeddings 工具和预训练语言模型完全免费使用。如果您觉得它有用,请考虑通过 Paypal 捐赠以支持进一步开发。💚
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。