ใช้วิธีอะไร ค้นหาข้อความที่มีอักษรพิเศษแทรกดี ครับ ?
เช่น
ขอนอบน้อม แด่พระผู้มีพระภาคองค์นั้น ผู้กำจัด<b>กิเลสแล้ว</b> ตรัสรู้อย่างถูกต้องได้เอง
ขอนอบน้อม แด่พระผู้มีพระภาคองค์นั้น ผู้กำจัดกิเลสแล้ว๑ ตรัสรู้อย่างถูกต้องได้เอง
ขอนอบน้อม แด่พระผู้มีพระภาคองค์นั้น ผู้กำจัดกิเลสแล้ว "ตรัสรู้อย่างถูกต้องได้เอง"
ตัวอย่างข้างต้น ถ้าจะหาคำว่า "ผู้กำจัดกิเลสแล้ว ตรัสรู้อย่างถูกต้องได้เอง" ตรงๆด้วย string.find("xxx") มันจะไม่เจออ่ะ ครับ
เพื่อนๆ มีวิธีไหนบ้าง... เช่น regular expression เป็นต้น ครับ
regular expression
adente Mon, 25/07/2011 - 21:14
regular expression น่าจะเหมาะกับพวกประโยคคำที่เป็น pattern ของมันเองมากกว่า พวก URL, Email อะไรอย่างนี้
ที่ผมเคยทำก็ให้มันอ่านที่ละตัวอักษรไล่ไป ถ้าเจอก็เก็บตัวอักษรนั้นไว้ในตัวแปร แล้วก็อ่านต่อไปเรื่อยๆ ปัญหาก็คือผมทำนะเป็นภาษาอังกฤษ และประโยคตัวอย่างนี้ยาวนะ มันจะหายากสิครับ
ใช้วิธีตัดอักขระพิเศษทั้งหมดอ
anu Mon, 25/07/2011 - 21:21
ใช้วิธีตัดอักขระพิเศษทั้งหมดออก เหลือแต่ ก-ฮ a-z A-Z 0-9 สระทั้งหลาย แล้วค่อยค้นหาซิครับ
ถ้าอยากหาคำโดยมองข้ามอักขระพิ
lew Mon, 25/07/2011 - 21:26
ถ้าอยากหาคำโดยมองข้ามอักขระพิเศษ ให้ filter อักขระพิเศษทิ้งออกไปก่อนง่ายกว่าครับ
เห็นด้วยคับ
rulaz07 Tue, 26/07/2011 - 13:02
In reply to ถ้าอยากหาคำโดยมองข้ามอักขระพิ by lew
เห็นด้วยคับ ผมก็ว่าน่าจะตัดทิ้งไปให้หมดก่อน ค่อยหา
ถ้าใช้ regular expression
อุ๊บะอันตะอู้ Mon, 25/07/2011 - 21:39
ถ้าใช้ regular expression filter ทุกบรรทัด มันจะช้าไหม ครับ
ข้อมูล txt เกือบ 1 gig
เยอะขนาดนั้น ใช้ lucene
tuckclub Mon, 25/07/2011 - 22:19
In reply to ถ้าใช้ regular expression by อุ๊บะอันตะอู้
เยอะขนาดนั้น ใช้ lucene เถอะครับ ทำ index ครั้งเดียว แล้วจะค้นกี่ครั้งแบบไหนก็ได้ตามใจชอบ
ขอบคุณ ทุกท่าน ครับ,
อุ๊บะอันตะอู้ Thu, 28/07/2011 - 14:51
ขอบคุณ ทุกท่าน ครับ, เดี๋ยวจะลอง http://www.whoosh.org ดู ครับ.
ไม่งั้นก็อาจเป็น ปลั๊กอินของ sqlite add ใน python ครับ.
ว่าแต่ว่า sqlite plugin มันลงใน python portable 2.7 ได้ไหม ครับ ?