OpenIE 5的berkeley language model的生成

起源

想用openie5.0进行开放信息抽取,但是因为其中一个重要的附件languagemodel因为有6.8G,且存储在Google硬盘,下载时经常断开连接(居然不能断点续传,西方神奇)。搜索博客后,发现有人写了一份参考实现。但是我在具体使用时发现,他遗漏了重要细节。下面是我重新写的一个可以完美实现openIE 5的berkeley language model的生成。

过程

1、下载如下两个文件(都来自berkeley的小组官网):
截止2019年3月21日仍可以有效访问。

http://tomato.banatao.berkeley.edu:8080/google_books_binaries/eng.blm.gz
http://tomato.banatao.berkeley.edu:8080/google_books_dirs/books_google_ngrams_eng/1gms/vocab_cs.gz

2、git 获取berkeley的项目 https://github.com/adampauls/berkeleylm

3、在src文件夹下添加一个如下类stupidOff

import edu.berkeley.nlp.lm.StupidBackoffLm;
import edu.berkeley.nlp.lm.io.IOUtils;
public class stupidOff {
	
	public static void main(String []args) {
		String file1="/home/rise1001/project/berkeleylm-master/languageModel"; //定义生成的语言模型位置
		String file2="/home/rise1001/project/berkeleylm-master/src/eng.blm.gz";
		String file3="/home/rise1001/project/berkeleylm-master/src/vocab_cs.gz";
		StupidBackoffLm<String> stupidBackoffLm=edu.berkeley.nlp.lm.io.LmReaders.readGoogleLmBinary(file2, file3);
		IOUtils.writeObjFileHard(file1,stupidBackoffLm);
	}
}

项目整体结构和最后生成的模型见下图
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014377853/article/details/88718844
今日推荐