ใช้วิธีอะไร ค้นหาข้อความที่มีอักษรพิเศษแทรกดี ครับ ?
เช่น
ขอนอบน้อม แด่พระผู้มีพระภาคองค์นั้น ผู้กำจัด<_b_>กิเลสแล้ว</b> ตรัสรู้อย่างถูกต้องได้เอง
ขอนอบน้อม แด่พระผู้มีพระภาคองค์นั้น ผู้กำจัดกิเลสแล้ว๑ ตรัสรู้อย่างถูกต้องได้เอง
ขอนอบน้อม แด่พระผู้มีพระภาคองค์นั้น ผู้กำจัดกิเลสแล้ว "ตรัสรู้อย่างถูกต้องได้เอง"
ตัวอย่างข้างต้น ถ้าจะหาคำว่า "ผู้กำจัดกิเลสแล้ว ตรัสรู้อย่างถูกต้องได้เอง" ตรงๆด้วย string.find("xxx") มันจะไม่เจออ่ะ ครับ
เพื่อนๆ มีวิธีไหนบ้าง... เช่น regular expression เป็นต้น ครับ
regular expression น่าจะเหมาะกับพวกประโยคคำที่เป็น pattern ของมันเองมากกว่า พวก URL, Email อะไรอย่างนี้
ที่ผมเคยทำก็ให้มันอ่านที่ละตัวอักษรไล่ไป ถ้าเจอก็เก็บตัวอักษรนั้นไว้ในตัวแปร แล้วก็อ่านต่อไปเรื่อยๆ ปัญหาก็คือผมทำนะเป็นภาษาอังกฤษ และประโยคตัวอย่างนี้ยาวนะ มันจะหายากสิครับ
ใช้วิธีตัดอักขระพิเศษทั้งหมดออก เหลือแต่ ก-ฮ a-z A-Z 0-9 สระทั้งหลาย แล้วค่อยค้นหาซิครับ
ถ้าอยากหาคำโดยมองข้ามอักขระพิเศษ ให้ filter อักขระพิเศษทิ้งออกไปก่อนง่ายกว่าครับ
lewcpe.com, @wasonliw
เห็นด้วยคับ ผมก็ว่าน่าจะตัดทิ้งไปให้หมดก่อน ค่อยหา
ถ้าใช้ regular expression filter ทุกบรรทัด มันจะช้าไหม ครับ
ข้อมูล txt เกือบ 1 gig
เยอะขนาดนั้น ใช้ lucene เถอะครับ ทำ index ครั้งเดียว แล้วจะค้นกี่ครั้งแบบไหนก็ได้ตามใจชอบ
ขอบคุณ ทุกท่าน ครับ, เดี๋ยวจะลอง http://www.whoosh.org ดู ครับ.
ไม่งั้นก็อาจเป็น ปลั๊กอินของ sqlite add ใน python ครับ.
ว่าแต่ว่า sqlite plugin มันลงใน python portable 2.7 ได้ไหม ครับ ?