Segmentación de palabras de PNL-Jieba

      Como sugiere el nombre de la biblioteca, la biblioteca Jieba se usa principalmente para la segmentación de palabras chinas. El procesamiento de la función Jieba es como tartamudear, generando palabras una por una. Actualmente es un componente de segmentación de palabras en chino de Python muy útil.

      La segmentación de palabras de Jieba admite cuatro modos:

  1. Modo preciso, tratando de cortar la oración con mayor precisión, adecuado para el análisis de texto;

  1. Modo completo, escanea todas las palabras que se pueden formar en palabras en la oración, la velocidad es muy rápida, pero no puede resolver la ambigüedad;

  1. El modo de motor de búsqueda, basado en el modo preciso, vuelve a segmentar las palabras largas para mejorar la tasa de recuperación y es adecuado para la segmentación de palabras en los motores de búsqueda.

  1. El modo paddle utiliza el marco de aprendizaje profundo PaddlePaddle para entrenar un modelo de red de etiquetado de secuencias (GRU bidireccional) para lograr la segmentación de palabras. También es compatible con el etiquetado de parte del discurso.


La función principal:

Participio

  1. El método jieba.cut acepta cuatro parámetros de entrada: la cadena que necesita segmentación de palabras, el parámetro cut_all se usa para controlar si se usa el modo completo, el parámetro HMM se usa para controlar si se usa el modelo HMM, el parámetro use_paddle se usa para controlar si se usa el modo de segmentación de palabras en el modo paleta, el modo paleta adopta el método de carga diferida, instala paddlepaddle-tiny a través de la interfaz enable_paddle e importa códigos relacionados;

  1. El método jieba.cut_for_search acepta dos parámetros: la cadena de caracteres a segmentar, si se utiliza el modelo HMM. Este método es adecuado para la segmentación de palabras para que los motores de búsqueda construyan índices invertidos, y la granularidad es relativamente buena;

  1. La cadena de caracteres que se va a segmentar puede ser una cadena de caracteres Unicode o UTF-8, una cadena de caracteres GBK. Nota: No se recomienda ingresar directamente la cadena GBK, que puede decodificarse incorrectamente de manera impredecible en UTF-8;

  1. La estructura devuelta por jieba.cut y jieba.cut_for_search es un generador iterable.Puede usar el bucle for para obtener cada palabra (unicode) obtenida después de la segmentación de palabras, o usar jieba.lcut y jieba.lcut_for_search para devolver la lista directamente;

  1. jieba.Tokenizer(dictionary=DEFAULT_DICT) crea un tokenizador personalizado, que se puede usar para usar diferentes diccionarios al mismo tiempo. jieba.dt es el tokenizador predeterminado, y todas las funciones relacionadas con el tokenizador global son asignaciones de este tokenizador.

# encoding=utf-8
import jieba

jieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持
strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for str in strs:
    seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式
    print("Paddle Mode: " + '/'.join(list(seg_list)))

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))
【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学

【精确模式】: 我/ 来到/ 北京/ 清华大学

【新词识别】:他, 来到, 了, 网易, 杭研, 大厦    (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)

【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造

diccionario

      Cargue el diccionario:

  1. Los desarrolladores pueden especificar sus propios diccionarios personalizados para incluir palabras que no están en el tesauro jieba. Aunque jieba tiene la capacidad de reconocer nuevas palabras, agregar nuevas palabras usted mismo puede garantizar una mayor tasa de precisión.

  1. Uso: jieba.load_userdict(file_name) # file_name es un objeto similar a un archivo o la ruta de un diccionario personalizado

  1. El formato del diccionario es el mismo que dict.txt , una palabra ocupa una línea, cada línea se divide en tres partes: palabra, frecuencia de palabra (se puede omitir), parte del discurso (se puede omitir), separadas por espacios y la el orden no se puede invertir. Si file_name es una ruta o un archivo abierto en modo binario, el archivo debe estar codificado en UTF-8.

  1. Cuando se omite la frecuencia de palabras, se utiliza la frecuencia de palabras calculada automáticamente que puede garantizar la separación de la palabra.

      Ajustar el diccionario:

  1. Use add_word(word, freq=None, tag=None) y del_word(word) para modificar el diccionario dinámicamente en el programa.

  1. Use Suggest_freq(segment, tune=True) para ajustar la frecuencia de palabras de una sola palabra para que pueda (o no) separarse.

  1. Nota: La frecuencia de palabras calculada automáticamente puede no ser válida cuando se usa la nueva función de descubrimiento de palabras de HMM.

>>> print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))
如果/放到/post/中将/出错/。
>>> jieba.suggest_freq(('中', '将'), True)
494
>>> print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))
如果/放到/post/中/将/出错/。
>>> print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
「/台/中/」/正确/应该/不会/被/切开
>>> jieba.suggest_freq('台中', True)
69
>>> print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
「/台中/」/正确/应该/不会/被/切开

extracción de palabras clave

etiquetado de parte del discurso


Fuente principal: https://github.com/fxsjy/jieba

Supongo que te gusta

Origin blog.csdn.net/fzz97_/article/details/128879357
Recomendado
Clasificación