ฉันเพิ่งเริ่มใช้ 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)))ที่คุณสามารถทำได้