Keras:文本预处理(删除停用词等)

时间:2018-06-11 18:13:11

标签: python keras

我使用Keras进行多标签分类任务(Kaggle上的毒性评论文本分类)。

我使用Tokenizer类进行一些预处理,如下所示:

tokenizer = Tokenizer(num_words=10000)
tokenizer.fit_on_texts(train_sentences)
train_sentences_tokenized = tokenizer.texts_to_sequences(train_sentences)
max_len = 250
X_train = pad_sequences(train_sentences_tokenized, maxlen=max_len)

这是一个好的开始,但我还没有删除停用词,词干等等。对于停止删除单词,这里是我在上面做的之前的事情:

def filter_stop_words(train_sentences, stop_words):
    for i, sentence in enumerate(train_sentences):
        new_sent = [word for word in sentence.split() if word not in stop_words]
        train_sentences[i] = ' '.join(new_sent)
    return train_sentences

stop_words = set(stopwords.words("english"))
train_sentences = filter_stop_words(train_sentences, stop_words)

难道在Keras中有更简单的方法吗?希望也有阻止能力,但是文档并没有表明存在:

https://keras.io/preprocessing/text/

任何有关停止删除词和阻止词的最佳做法的帮助都会很棒!

谢谢!

1 个答案:

答案 0 :(得分:0)

不,Keras不是一个自然语言处理库。您必须自己处理任何复杂的处理。在这个阶段,使用具有Python接口的实际NLP库(例如NLTKSpacy)可能是有意义的。 Tokenizer是一个用于基本自然语言任务的小型实用程序类,您可以自己将其扩展到某个点,但NLP库将提供更多功能,包括标记化,POS标记和词干分析。