Descrição ambiental
Python 3.6 instalado com sistema Debian e anaconda
Dependências de instalação
Se você tiver privilégios de root , você pode instalar dependências com apt. Veja o link no github
sudo apt install build-essential cmake libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-test-dev libeigen3-dev zlib1g-dev libbz2-dev liblzma-dev
Caso contrário, Eigen e impulsionar as bibliotecas precisam ser instalados.
Eigen instalação
cd $HOME
wget -O - https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2 |tar xj
aumentar a instalação
# 下载boost
cd $HOME
wget https://jaist.dl.sourceforge.net/project/boost/boost/1.66.0/boost_1_66_0.tar.bz2
tar --bzip2 -xf /path/to/boost_1_61_0.tar.bz2
cd boost_1_61_0
./bootstrap.sh --prefix=$HOME/boost
./b2 install --prefix=$HOME/boost
Se houver um erro de que o pyconfig.h não foi encontrado durante a instalação, você precisará especificar o caminho de instalação do python e, em seguida, executar o comando de instalação.
# 找到自己python安装路径下的include dir, 比如 /usr/include/python2.7/
export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:$HOME/anaconda3/include/python3.6m"
referência:
Instale o Kenlm
git clone https://github.com/kpu/kenlm.git
cd kenlm
# 如果是apt安装的boost, 不用指定BOOST_ROOT
export BOOST_ROOT=$HOME/boost
mkdir -p build
cd build
cmake ..
make -j 4
# 安装python kenlm包
pip install https://github.com/kpu/kenlm/archive/master.zip
Treine e use o LM
Modelo de linguagem de treinamento
# path to kenlm bin
KENLM=$HOME/kenlm/build/bin
data=/path/to/yourdata
dst=/savepath
# 二进制后的文件
dstbin=/binpath
# 构建arpa的语言模型, -o 指定语言模型的阶数
# 这一步如果因为数据太大, 导致训练失败, 可以设定占用的内存和临时文件的位置改变
# -S 50% -T /tmp/ : 指定最多占用50%的内存和利用/tmp存储临时文件
$KENLM/lmplz -o 5 < $data > $dst
# 将语言模型二进制化
$KENLM/build_binary $dst $dstbin
Use o modelo de linguagem treinado em python
import kenlm
model = kenlm.Model('lm/test.arpa')
print(model.score('this is a sentence .', bos = True, eos = True))