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);
	}
}

項目整體結構和最後生成的模型見下圖
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章