我有停止词列表,但不知何故程序无法删除语料库中的停止词
我使用的代码
stop_factory = StopWordRemoverFactory()
more_stopword = ['selamat','halo','hallo','hi']
dok_word = ['Dok','dok?', 'dok,', 'dok.', 'dok-', 'dok!', 'dok:', 'dok;', 'dok', 'dok.,','dok,.','dok?.',
'Dokter','dokter?', 'dokter,', 'dokter.', 'dokter-', 'dokter!', 'dokter:', 'dokter;']
data = stop_factory.get_stop_words()+more_stopword+dok_word
# cleaning
def clean_text(text):
new_text = []
text = text.lower() # Lowercase
# Loop each word in a sentence
for kata in text.split():
# Keep word not in slang or standard word
if kata not in std_word_replace:
new_text.append(kata)
# Replace non-formal word with standard word
elif kata in std_word_replace:
new_text+=std_word_replace[kata].split()
# Join words without stopwords after stemming
new_text = ' '.join(
stemmer.stem(word) for word in new_text if word not in data
)
# Remove punctuations
text = text.translate(str.maketrans('', '', string.punctuation))
return new_text
所以我把这个代码xtrain['question'].apply(lambda x: clean_text(x))
应用到我的语料库中,行就像this,从第一个索引开始取这个例子
字:'Dok,anak saya sudah imunisasi DPT'
输出:'dok anak imunisasi dpt'
“dok”这个字还在,我怎么解决这个问题?
2条答案
按热度按时间xfb7svmp1#
在你的代码中,你创建了dok_word,但是你没有使用它。你还需要仔细检查,因为text_dok =“dok,anak saya sepertinya”如果你只是用空格分割,那么停止词仍然不会影响。
ilmyapht2#
最后一行有错误,应该像
stopwordexample.remove(dok_word)
那样使用