NLP

文本处理

  • 文本处理分类
    • 分词
      • jieba 中文分词库
    • 词性标注
      • jieba.posseg
    • 命名实体识别
  • 文本张量表示方法
    • one-hot编码
      • 优点:操作简单,便于理解
      • 缺点:词与词之间的联系被割断了;如果数据量大,内存消耗大
# 用于对象保存和加载
from sklearn.externals import joblib
# 词汇映射器
from keras.preprocessing.text import Tokenizer

# 词汇表
vocab = ['随笔', '文章', '日记']

# 词汇映射器
t = Tokenizer(num_words=None, char_level=False)

# 在映射器上拟合词汇表
t.fit_on_texts(vocab)

# 获取一个词汇在词汇映射器的位置,从1开始
token = '随笔'
index = t.texts_to_sequences([token])[0][0]

# 将拟合的词汇映射器保存起来,后续有新的词汇表,可以先加载保存的词汇映射器,然后再拟合新的词汇表
path = './xxx'
joblib.dump(t, path)

# 从文件加载词汇映射器
t_new = joblib.load(path)


  • Word2vec
    • CBOW(Continuous bag of words):窗口两边预测中间
    • skipgram:窗口中间预测两边
    • 使用 fasttext 库进行训练
      • model = fasttext.train_unsupervised(file_path)
      • model.get_word_vector('hello') 获取单词的词向量
  • Word embedding
  • 文本语料的分析
    • 标签数量分析
    • 句子长度分析
    • 词频统计和关键词云的绘制
  • 文本特征处理
    • 添加n-gram特征
    • 文本长度规范
  • 数据增强方法
    • 回译增强法 比如:法语转成英语再转成汉语
posted @ 2024-12-16 23:15  liDB  阅读(9)  评论(0编辑  收藏  举报