ฉันเพิ่งเริ่มใช้ NLTK และไม่ค่อยเข้าใจวิธีรับรายการคำจากข้อความ ถ้าฉันใช้nltk.word_tokenize()
ฉันจะได้รับรายการคำและเครื่องหมายวรรคตอน ฉันต้องการเพียงคำพูดแทน ฉันจะกำจัดเครื่องหมายวรรคตอนได้อย่างไร ยังใช้word_tokenize
ไม่ได้กับหลายประโยค: จุดจะถูกเพิ่มเข้าไปในคำสุดท้าย
word_tokenize()
ไม่ได้กับหลายประโยค ในการกำจัดเครื่องหมายวรรคตอนคุณสามารถใช้นิพจน์ทั่วไปหรือisalnum()
ฟังก์ชันของไพธ อน
>>> 'with dot.'.translate(None, string.punctuation) 'with dot'
( 'end of sentence.No space'
อย่าลืมจุดที่ท้ายผลลัพธ์) อาจทำให้เกิดปัญหาหากคุณมีสิ่งต่างๆเช่นในกรณีนี้ให้ทำสิ่งนี้แทนthe_text.translate(string.maketrans(string.punctuation, ' '*len(string.punctuation)))
ซึ่งจะแทนที่เครื่องหมายวรรคตอนทั้งหมดด้วยช่องว่างสีขาว
nltk.word_tokenize(the_text.translate(None, string.punctuation))
ควรจะทำงานในขณะที่อยู่ใน python2 python3nltk.work_tokenize(the_text.translate(dict.fromkeys(string.punctuation)))
ที่คุณสามารถทำได้