¿Puedo usar Python para llamar a hanlp?
JPype no implementa su propia JVM como IKVM, sino que llama a la JVM local en forma de canalización. Por lo tanto, necesitamos una JVM, por ejemplo:
Oracle JDK
OpenJDK
Instalar JDK es muy simple, solo distingue entre 32 bits y 64 bits.
p>Lo único que debe tener en cuenta es que debe configurar la variable de entorno JAVA_HOME en el directorio raíz del JDK; el instalador del JDK no necesariamente hará esto por usted.
Instalar la cadena de herramientas de compilación
Los paquetes de Python generalmente se publican como código fuente y parte del código C debe compilarse en la máquina del usuario, por lo que es necesario instalar la herramienta de compilación. cadena. Por supuesto, también puedes omitir este paso y descargar el binario directamente.
Windows
Instala gratis Visual C Express 2010.
Debian/Ubuntu
sudo apt-get install g
Red Hat /Fedora
su -c 'yum install gcc-c '
Instalación de JPype
Los lectores de este artículo deben ser programadores de Python, por lo que pueden omitir el paso de instalar Python. Pero cabe señalar que la versión de Jpype corresponde a la compatibilidad de Python:
Python2.x: Jpype
Python3.x: Jpype1-py3
Instalar usando setup.py
Descarga el código fuente, descomprímelo y ejecuta en el siguiente directorio:
* nix
sudo python3 setup.py install
Windows
python setup.py install
Descargue directamente el archivo binario
Por supuesto, también puede optar por descargar el archivo binario, por ejemplo. Por ejemplo, en la página de inicio de py3, JPype1: descargar de la lista de binarios.
Instalación en Pycharm
Si estás utilizando el IDE de Pycharm, las cosas son mucho más sencillas.
Primero haga clic en el signo más en Project Interpreter:
Busque JPype y seleccione la versión que desea instalar:
Espere un momento a que se complete la instalación. :
p>
Prueba los resultados de la instalación
Finalmente puedes volver a la diversión de escribir código. Puedes escribir código como el siguiente para probar la instalación
desde jpype import *startJVM( getDefaultJVMPath())java.lang.System.out.lang.System.out.Println("hola mundo")println("hola mundo") ShutdownJVM()
Se generan los siguientes resultados, lo que indica que la instalación se realizó correctamente:
hola mundoInforme de actividad de JVM: Clase cargada: 31JVM cerrada
Llamar a HanLP
Acerca de HanLP
HanLP
HanLP es
un conjunto de herramientas Java de código abierto dedicado a popularizar la tecnología PNL en entornos de producción. Es un conjunto de herramientas Java de código abierto dedicado a popularizar la tecnología PNL en entornos de producción.
Admite segmentación de palabras chinas (segmentación de circuito N más corto, segmentación CRF, segmentación indexada, diccionario definido por el usuario, anotación léxica), reconocimiento de entidades con nombre (reconocimiento de nombres chinos, nombres pinyin, nombres japoneses, nombres geográficos,
Reconocimiento (reconocer nombres chinos, nombres Pinyin, nombres japoneses, nombres geográficos, nombres de entidades), extracción de palabras clave, resumen automático, extracción de frases, conversión Pinyin, conversión de chino simplificado y tradicional, recomendación de texto, análisis de sintaxis de dependencia
(MaxEnt se basa en el análisis sintáctico, la red neuronal se basa en el análisis sintáctico)
Descargar HanLP
Puede descargar directamente la versión portátil del jar sin ninguna configuración. O puede utilizar HanLP personalizado: HanLP consta de 3 partes: biblioteca de clases, paquete hanlp.jar, paquete de datos del modelo y archivo de configuración hanlp.properties. Vaya a la página de inicio del proyecto para descargar la última versión: /hankcs/HanLP/. - Para la versión portada, después de la descarga, debe editar la primera línea del archivo de configuración y apuntar la raíz al directorio principal de los datos. Consulte la documentación para obtener más detalles. Supongamos que se ha creado un nuevo directorio (se supone que es C:\hanlp), coloque hanlp.jar y hanlp.properties (solo se necesita hanlp-portable.jar para la versión portátil):
Llamada Python
La siguiente es una copia del ejemplo de llamada Python3:
# -*- Codificación: utf-8 -*-
# Archivo nombre: main.py
# Autor: hankcs
# Fecha: 26/11/2015 14:16
de jpype import *
startJVM(getDefaultJVMPath(), "-Djava.class.path=C:\hanlp\hanlp- 1.2.8.jar;C:\hanlp", "-Xms1g", "-Xmx1g")
HanLP = JClass('com.hankcs.hanlp.HanLP')
# segmento chino
print(HanLP.segment('Hola, bienvenido a llamar a la API de HanLP en Python' ))
testCases = [
"Productos y servicios",
"Casados y solteros son participios que interfieren entre sí",
"Compra fruta y luego ven a la Expo, y finalmente ve a la Expo",
"China "La capital de China es Beijing",
"Bienvenidos nuevos profesores a comer",
"Funcionarias del Ministerio de Industria y Tecnología de la Información pasan todos los meses por los departamentos subordinados y entregan personalmente equipos técnicos como conmutadores de 24 puertos "Trabajos de instalación",
"Con el aumento del paso de página a la popularidad actual del paso de página, el diseño del juicio lógico basado en el archivo se ha reducido, pero este aspecto no se puede ignorar por completo.
"]
para oración en testCases: print(HanLP.segment(sentence))
# Reconocimiento de entidad nombrada y anotación léxica
NLPTokenizer = JClass('com .hankcs.hanlp. tokenizer.NLPTokenizer')
print(NLPTokenizer.segment('El profesor Zong Chengqing del Instituto de Tecnología Informática de la Academia de Ciencias de China está impartiendo un curso sobre procesamiento del lenguaje natural'))
# Extracción de palabras clave
document = "Chen Mingzhong, Director del Departamento de Recursos Hídricos del Ministerio de Recursos Hídricos, reveló en una conferencia de prensa celebrada por la Oficina de Información del Consejo de Estado sobre 29 de septiembre,"
"Según la evaluación del sistema de gestión de recursos hídricos recién terminada, algunas provincias están cerca de los indicadores de la línea roja",
"Algunas provincias han excedido la línea roja indicadores. Para algunos lugares que exceden la línea roja, Chen Mingzhong dijo que existen restricciones regionales sobre la aprobación de algunos proyectos de extracción de agua: "
"Llevar a cabo estrictamente la demostración de recursos hídricos y la aprobación del permiso de extracción de agua". p>
print(HanLP .extractKeyword(documento, 2))
# Resumen automático
print(HanLP.extractSummary(documento, 3))
# Depende del análisis de sintaxis
print (HanLP.parseDependency("El Sr. Xu también lo ayudó específicamente a identificar dibujar águilas, ardillas y gorriones como sus principales objetivos."))
apagadoJVM()