วิธีแยกวิเคราะห์ข้อความ

เผยแพร่แล้ว: 2022-10-15
วิธีแยกวิเคราะห์ข้อความ

หากคุณได้เรียนรู้ภาษาการเขียนโปรแกรมคอมพิวเตอร์มาสองสามภาษา คุณอาจเคยได้ยินคำนี้โดยแยกวิเคราะห์ข้อความ ใช้เพื่อลดความซับซ้อนของค่าข้อมูลที่ซับซ้อนของไฟล์ บทความนี้ช่วยคุณในการรู้วิธีแยกวิเคราะห์ข้อความโดยใช้ภาษา นอกจากนี้ หากคุณพบข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x คุณจะทราบวิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ในบทความ

วิธีแยกวิเคราะห์ข้อความ

สารบัญ

  • วิธีแยกวิเคราะห์ข้อความ
  • การแยกวิเคราะห์ข้อความคืออะไร?
  • NLP หรือการประมวลผลภาษาธรรมชาติ
  • การแยกวิเคราะห์ข้อความคืออะไร?
  • เหตุผลในการแยกวิเคราะห์ข้อความคืออะไร
  • วิธีที่ 1: ผ่าน DataFrame Class
  • วิธีที่ 2: ผ่าน Word Tokenization
  • วิธีที่ 3: ผ่าน DocParser Class
  • วิธีที่ 4: ผ่านเครื่องมือแยกวิเคราะห์ข้อความ
  • วิธีที่ 5: ผ่าน TextFieldParser (Visual Basic)
  • เคล็ดลับแบบมือโปร: วิธีแยกวิเคราะห์ข้อความผ่าน MS Excel
  • วิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์

วิธีแยกวิเคราะห์ข้อความ

ในบทความนี้ เราได้แสดงคู่มือฉบับเต็มเพื่อแยกวิเคราะห์ข้อความด้วยวิธีต่างๆ และได้แนะนำสั้นๆ เกี่ยวกับการแยกวิเคราะห์ข้อความ

การแยกวิเคราะห์ข้อความคืออะไร?

ก่อนที่จะเจาะลึกเพื่อเรียนรู้แนวคิดของการแยกวิเคราะห์ข้อความโดยใช้รหัสใด ๆ สิ่งสำคัญคือต้องรู้เกี่ยวกับพื้นฐานของภาษาและการเข้ารหัส

NLP หรือการประมวลผลภาษาธรรมชาติ

ในการแยกวิเคราะห์ข้อความ ใช้การประมวลผลภาษาธรรมชาติหรือ NLP ซึ่งเป็นฟิลด์ย่อยของโดเมนปัญญาประดิษฐ์ ภาษา Python ซึ่งเป็นหนึ่งในภาษาที่อยู่ในหมวดหมู่นี้ใช้เพื่อแยกวิเคราะห์ข้อความ

รหัส NLP ช่วยให้คอมพิวเตอร์สามารถเข้าใจและประมวลผลภาษามนุษย์เพื่อให้เหมาะสมกับการใช้งานที่หลากหลาย หากต้องการนำเทคนิค ML หรือ Machine Learning ไปใช้กับภาษา ข้อมูลข้อความที่ไม่มีโครงสร้างจะต้องถูกแปลงเป็นข้อมูลตารางที่มีโครงสร้าง สำหรับการทำกิจกรรมการแยกวิเคราะห์ให้เสร็จสิ้น ภาษา Python ถูกใช้เพื่อแก้ไขรหัสโปรแกรม

การแยกวิเคราะห์ข้อความคืออะไร?

การแยกวิเคราะห์ข้อความหมายถึงการแปลงข้อมูลจากรูปแบบหนึ่งไปเป็นรูปแบบอื่น รูปแบบที่บันทึกไฟล์จะถูกแยกวิเคราะห์หรือแปลงเป็นไฟล์ในรูปแบบอื่นเพื่อให้ผู้ใช้สามารถใช้งานได้ในแอพพลิเคชั่นต่างๆ

  • กล่าวอีกนัยหนึ่ง กระบวนการนี้หมายถึงการวิเคราะห์สตริงหรือข้อความ และแปลงเป็นส่วนประกอบทางลอจิคัลโดยการเปลี่ยนรูปแบบของไฟล์
  • กฎบางอย่างของภาษา Python ถูกใช้เพื่อทำงานเขียนโปรแกรมทั่วไปนี้ให้เสร็จสมบูรณ์ ขณะแยกวิเคราะห์ข้อความ ชุดข้อความที่กำหนดจะแบ่งออกเป็นส่วนประกอบย่อยๆ

เหตุผลในการแยกวิเคราะห์ข้อความคืออะไร

เหตุผลที่ต้องแยกวิเคราะห์ข้อความแสดงไว้ในส่วนนี้ และเป็นความรู้ที่จำเป็นก่อนจะทราบวิธีแยกวิเคราะห์ข้อความ

  • ข้อมูลคอมพิวเตอร์ทั้งหมดจะไม่อยู่ในรูปแบบเดียวกันและอาจแตกต่างไปตามการใช้งานต่างๆ
  • รูปแบบข้อมูลแตกต่างกันไปสำหรับแอปพลิเคชันต่างๆ และรหัสที่เข้ากันไม่ได้จะทำให้เกิดข้อผิดพลาดนี้
  • ไม่มีโปรแกรมคอมพิวเตอร์สากลสำหรับเลือกข้อมูลของรูปแบบข้อมูลทั้งหมด

วิธีที่ 1: ผ่าน DataFrame Class

DataFrame Class ของภาษา Python มีฟังก์ชันที่จำเป็นทั้งหมดในการแยกวิเคราะห์ข้อความ ไลบรารีที่สร้างขึ้นนี้ประกอบด้วยรหัสที่จำเป็นในการแยกวิเคราะห์ข้อมูลของรูปแบบใดๆ เป็นรูปแบบอื่น

แนะนำสั้นๆ ของ DataFrame Class

DataFrame Class เป็นโครงสร้างข้อมูลที่มีคุณลักษณะหลากหลาย ซึ่งใช้เป็นเครื่องมือวิเคราะห์ข้อมูล นี่คือเครื่องมือวิเคราะห์ข้อมูลที่ทรงพลังที่สามารถใช้วิเคราะห์ข้อมูลได้โดยใช้ความพยายามเพียงเล็กน้อย

  • รหัสจะถูกอ่านใน DataFrame แพนด้าเพื่อทำการวิเคราะห์ในภาษา Python
  • Class มาพร้อมกับแพ็คเกจมากมายที่จัดเตรียมโดยแพนด้า ซึ่งใช้โดยนักวิเคราะห์ข้อมูล Python
  • คุณสมบัติของคลาสนี้เป็นนามธรรม ซึ่งเป็นรหัสที่ฟังก์ชันการทำงานภายในของฟังก์ชันถูกซ่อนจากผู้ใช้ ของไลบรารี NumPy ไลบรารี NumPy เป็นไลบรารีหลามที่รวมคำสั่งและฟังก์ชันสำหรับการทำงานกับอาร์เรย์
  • คลาส DataFrame สามารถใช้เพื่อแสดงอาร์เรย์สองมิติที่มีดัชนีหลายแถวและคอลัมน์ ดัชนีเหล่านี้ช่วยในการจัดเก็บข้อมูลหลายมิติ และด้วยเหตุนี้จึงเรียกว่า MultiIndex สิ่งเหล่านี้ต้องมีการเปลี่ยนแปลงเพื่อทราบวิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์

แพนด้าของภาษา Python ช่วยในการดำเนินการ SQL หรือรูปแบบฐานข้อมูลด้วยความสมบูรณ์แบบสูงสุดเพื่อหลีกเลี่ยงข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x นอกจากนี้ยังมีเครื่องมือ IO บางอย่างที่ช่วยในการวิเคราะห์ไฟล์ CSV, MS Excel, JSON, HDF5 และรูปแบบข้อมูลอื่นๆ

อ่านเพิ่มเติม: แก้ไขข้อผิดพลาดที่เกิดขึ้นขณะพยายามขอพร็อกซี

กระบวนการแยกวิเคราะห์ข้อความโดยใช้ DataFrame Class

หากต้องการทราบวิธีแยกวิเคราะห์ข้อความ คุณสามารถใช้กระบวนการมาตรฐานโดยใช้คลาส DataFrame ที่ระบุในส่วนนี้

  • ถอดรหัสรูปแบบข้อมูลของข้อมูลที่ป้อน
  • กำหนดข้อมูลผลลัพธ์ของข้อมูล เช่น CSV หรือ Comma Separated Value
  • เขียนรหัสประเภทข้อมูลพื้นฐานเช่นรายการหรือ dict

หมายเหตุ: การเขียนโค้ดบน DataFrame ที่ว่างเปล่าอาจเป็นเรื่องน่าเบื่อและซับซ้อน แพนด้าอนุญาตให้สร้างข้อมูลในคลาส DataFrame จากประเภทข้อมูลเหล่านี้ ดังนั้นข้อมูลในประเภทข้อมูลพื้นฐานสามารถแยกวิเคราะห์เป็นรูปแบบข้อมูลที่ต้องการได้อย่างง่ายดาย

  • วิเคราะห์ข้อมูลโดยใช้เครื่องมือวิเคราะห์ข้อมูล pandas DataFrame และพิมพ์ผลลัพธ์

ตัวเลือกที่ 1: รูปแบบมาตรฐาน

วิธีการมาตรฐานในการจัดรูปแบบไฟล์ใดๆ ที่มีรูปแบบข้อมูลบางอย่าง เช่น CSV ได้อธิบายไว้ที่นี่

  • บันทึกไฟล์ด้วยค่าข้อมูลในเครื่องพีซีของคุณ ตัวอย่างเช่น คุณสามารถตั้งชื่อไฟล์ data.txt
  • นำเข้าไฟล์ในแพนด้าด้วยชื่อเฉพาะและนำเข้าข้อมูลไปยังตัวแปรอื่น ตัวอย่างเช่น แพนด้าของภาษานั้นถูกนำเข้ามาในชื่อ pd ในรหัสที่กำหนด
  • การนำเข้าควรมีโค้ดที่สมบูรณ์พร้อมรายละเอียดของชื่อไฟล์อินพุต ฟังก์ชัน และรูปแบบไฟล์อินพุต

หมายเหตุ: ในที่นี้ ตัวแปรที่ชื่อ res ใช้เพื่อทำหน้าที่ อ่าน ข้อมูลในไฟล์ data.txt โดยใช้แพนด้าที่นำเข้าใน pd รูปแบบข้อมูลของข้อความที่ป้อนถูกระบุในรูปแบบ CSV

  • เรียกประเภทไฟล์ที่มีชื่อและวิเคราะห์ข้อความที่แยกวิเคราะห์ในผลงานพิมพ์ ตัวอย่างเช่น คำสั่ง res หลังจากการดำเนินการบรรทัดคำสั่งจะช่วยในการพิมพ์ข้อความที่แยกวิเคราะห์

โค้ดตัวอย่างสำหรับกระบวนการที่อธิบายข้างต้นแสดงไว้ด้านล่างและจะช่วยในการทำความเข้าใจวิธีแยกวิเคราะห์ข้อความ

 นำเข้าแพนด้าเป็น pd
res = pd.read_csv('data.txt')
res

ในกรณีนี้ หากคุณป้อนค่าข้อมูลในไฟล์ data.txt เช่น [1,2,3] จะถูกแยกวิเคราะห์และแสดงเป็น 1 2 3

ตัวเลือก II: วิธีสตริง

หากข้อความที่กำหนดให้กับโค้ดมีเฉพาะสตริงหรืออักขระอัลฟา สามารถใช้อักขระพิเศษในสตริง เช่น จุลภาค ช่องว่าง ฯลฯ เพื่อแยกและแยกวิเคราะห์ข้อความได้ กระบวนการนี้คล้ายกับการดำเนินการสตริงภายในทั่วไป หากต้องการค้นหาวิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ คุณต้องทำตามขั้นตอนการแยกวิเคราะห์ข้อความโดยใช้ตัวเลือกนี้ตามที่อธิบายไว้ด้านล่าง

  • ข้อมูลถูกดึงออกมาจากสตริงและอักขระพิเศษทั้งหมดที่แยกข้อความจะถูกบันทึกไว้

ตัวอย่างเช่น ในโค้ดที่ระบุด้านล่าง จะมีการระบุอักขระพิเศษในสตริง my_string ซึ่งได้แก่ ' , ' และ ' : ' ขั้นตอนนี้ต้องทำอย่างระมัดระวังเพื่อหลีกเลี่ยงข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x

  • ข้อความในสตริงจะถูกแยกตามค่าและตำแหน่งของอักขระพิเศษ

ตัวอย่างเช่น สตริงถูกแบ่งออกเป็นค่าข้อมูลข้อความตามอักขระพิเศษที่ระบุโดยใช้คำสั่ง split

  • ค่าข้อมูลของสตริงจะถูกพิมพ์เพียงอย่างเดียวเป็นข้อความที่แยกวิเคราะห์ ในที่นี้ คำสั่ง print ใช้เพื่อพิมพ์ค่าข้อมูลที่แยกวิเคราะห์ของข้อความ

โค้ดตัวอย่างสำหรับกระบวนการที่อธิบายไว้ข้างต้นแสดงไว้ด้านล่าง

 my_string = 'ชื่อ: เทค, คอมพิวเตอร์'
sfinal = [name.strip() สำหรับชื่อใน my_string.split(':')[1].split(',')]
พิมพ์("ชื่อ: {}".format(sfinal))

ในกรณีนี้ ผลลัพธ์ของสตริงที่แยกวิเคราะห์จะแสดงดังที่แสดงด้านล่าง

 ชื่อ: ['เทค', 'คอมพิวเตอร์']

เพื่อให้ได้ความชัดเจนที่ดีขึ้นและรู้วิธีแยกวิเคราะห์ข้อความในขณะที่ใช้ข้อความสตริง จะใช้ for loop และแก้ไขโค้ดดังนี้

 my_string = 'ชื่อ: เทค, คอมพิวเตอร์'
s1 = my_string.split(':')
s2 = s1 [1]
s3 = s2.split(',')
s4 = [name.strip() สำหรับชื่อใน s3]
สำหรับ idx รายการในการแจกแจง ([s1, s2, s3, s4]):
print(“ขั้นตอน {}: {}”.format(idx, item)) 

รหัสหลาม

ผลลัพธ์ของข้อความที่แยกวิเคราะห์สำหรับแต่ละขั้นตอนเหล่านี้จะแสดงตามที่ระบุด้านล่าง คุณสามารถสังเกตได้ว่าในขั้นตอนที่ 0 สตริงจะถูกแยกตามอักขระพิเศษ : และค่าข้อมูลข้อความจะถูกแยกตามอักขระในขั้นตอนต่อไป

 ขั้นตอนที่ 0: ['ชื่อ', 'เทคโนโลยี, คอมพิวเตอร์']
ขั้นตอนที่ 1: เทคโนโลยี คอมพิวเตอร์
ขั้นตอนที่ 2: [' เทค ', ' คอมพิวเตอร์']
ขั้นตอนที่ 3: ['เทคนิค', 'คอมพิวเตอร์']

ตัวเลือก III: การแยกวิเคราะห์ไฟล์ที่ซับซ้อน

ในกรณีส่วนใหญ่ ข้อมูลไฟล์ที่ต้องแยกวิเคราะห์ประกอบด้วยประเภทข้อมูลและค่าข้อมูลที่แตกต่างกัน ในกรณีนี้ อาจเป็นเรื่องยากที่จะแยกวิเคราะห์ไฟล์โดยใช้วิธีการที่อธิบายไว้ก่อนหน้านี้

คุณสมบัติของการแยกวิเคราะห์ข้อมูลที่ซับซ้อนในไฟล์คือการทำให้ค่าข้อมูลแสดงในรูปแบบตาราง

  • ชื่อหรือข้อมูลเมตาของค่าจะถูกพิมพ์ที่ด้านบนของไฟล์
  • ตัวแปรและฟิลด์จะพิมพ์ออกมาในรูปแบบตารางและ
  • ค่าข้อมูลในรูปแบบคีย์ผสม

ก่อนที่จะศึกษาวิธีแยกวิเคราะห์ข้อความในวิธีนี้ จำเป็นต้องเรียนรู้แนวคิดพื้นฐานบางประการก่อน การแยกวิเคราะห์ค่าข้อมูลทำได้โดยใช้นิพจน์ทั่วไปหรือ Regex

รูปแบบ Regex

หากต้องการทราบวิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ คุณต้องแน่ใจว่ารูปแบบ regex ในนิพจน์นั้นเหมาะสม รหัสสำหรับแยกวิเคราะห์ค่าข้อมูลของสตริงจะเกี่ยวข้องกับรูปแบบ Regex ทั่วไปที่แสดงด้านล่างในส่วนนี้

  • '\d' : จับคู่ตัวเลขทศนิยมในสตริง
  • '\s' : จับคู่อักขระช่องว่าง
  • '\w' : จับคู่อักขระที่เป็นตัวอักษรและตัวเลขคละกัน
  • '+' หรือ '*' : ทำการจับคู่โลภโดยจับคู่อักขระอย่างน้อยหนึ่งตัวในสตริง
  • 'a-z' : จับคู่กลุ่มตัวพิมพ์เล็กในค่าข้อมูลข้อความ
  • 'A-Z' หรือ 'a-z' : จับคู่กลุ่มตัวพิมพ์ใหญ่และตัวพิมพ์เล็กของสตริง และ
  • '0-9' : จับคู่ค่าตัวเลข

นิพจน์ทั่วไป

โมดูลนิพจน์ทั่วไปเป็นส่วนสำคัญของแพ็คเกจ pandas ในภาษา Python และ re ที่ไม่ถูกต้องสามารถนำไปสู่ข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x เป็นภาษาเล็กๆ ที่ฝังอยู่ใน Python เพื่อค้นหารูปแบบสตริงในนิพจน์ Regular Expressions หรือ Regex เป็นสตริงที่มีไวยากรณ์พิเศษ อนุญาตให้ผู้ใช้จับคู่รูปแบบในสตริงอื่นๆ ตามค่าในสตริง

Regex ถูกสร้างขึ้นตามชนิดข้อมูลและข้อกำหนดของนิพจน์ในสตริง เช่น 'String = (.*)\n regex ถูกใช้ก่อนรูปแบบในทุกนิพจน์ สัญลักษณ์ที่ใช้ในนิพจน์ทั่วไปแสดงไว้ด้านล่างและจะช่วยในการทราบวิธีแยกวิเคราะห์ข้อความ

  • . : เพื่อดึงอักขระใด ๆ จากข้อมูล
  • * : ใช้ข้อมูลศูนย์หรือมากกว่าจากนิพจน์ก่อนหน้า
  • (.*) : เพื่อจัดกลุ่มส่วนของนิพจน์ทั่วไปภายในวงเล็บ
  • \n : สร้างอักขระบรรทัดใหม่ที่ท้ายบรรทัดในโค้ด
  • \d : สร้างค่าอินทิกรัลสั้น ๆ ในช่วง 0 ถึง 9
  • + : ใช้ข้อมูลอย่างน้อยหนึ่งรายการจากนิพจน์ก่อนหน้า และ
  • | : สร้างคำสั่งเชิงตรรกะ ใช้สำหรับ หรือ นิพจน์

RegexObjects

RegexObject เป็นค่าส่งคืนสำหรับฟังก์ชันคอมไพล์และใช้เพื่อส่งคืน MatchObject หากนิพจน์ตรงกับค่าที่ตรงกัน

1. MatchObject

เนื่องจากค่าบูลีนของ MatchObject จะเป็น True เสมอ คุณสามารถใช้คำสั่ง if เพื่อระบุการจับคู่ที่เป็นค่าบวกในออบเจกต์ได้ ในกรณีของการใช้คำสั่ง if กลุ่มที่อ้างอิงถึงโดยดัชนีจะใช้เพื่อค้นหาการจับคู่ของวัตถุในนิพจน์

  • group() ส่งคืนกลุ่มย่อยของการแข่งขันอย่างน้อยหนึ่งกลุ่ม
  • group(0) คืนค่าการแข่งขันทั้งหมด
  • group(1) ส่งคืนกลุ่มย่อยในวงเล็บแรก และ
  • ในขณะที่อ้างถึงหลายกลุ่ม เราควรใช้ส่วนขยายเฉพาะของหลาม ส่วนขยายนี้ใช้เพื่อระบุชื่อของกลุ่มที่ต้องการค้นหารายการที่ตรงกัน ส่วนขยายเฉพาะมีให้ภายในกลุ่มในวงเล็บ ตัวอย่างเช่น นิพจน์ (?P<group1>regex1) จะอ้างถึงกลุ่มเฉพาะที่มีชื่อ group1 และตรวจสอบการจับคู่ในนิพจน์ทั่วไป regex1 หากต้องการเรียนรู้วิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ คุณต้องตรวจสอบว่าชี้กลุ่มถูกต้องหรือไม่

2. วิธีการของ MatchObject

ขณะค้นหาวิธีแยกวิเคราะห์ข้อความ สิ่งสำคัญคือต้องรู้ว่า MatchObject มีวิธีพื้นฐานสองวิธีตามรายการด้านล่าง หากพบ MatchObject ในนิพจน์ที่ระบุ มันจะส่งคืนอินสแตนซ์ มิฉะนั้น จะส่งคืน None

  • ใช้เมธอด match(string) เพื่อค้นหาการจับคู่ของสตริงที่จุดเริ่มต้นของนิพจน์ทั่วไป และ
  • วิธีการ ค้นหา (สตริง) ใช้เพื่อสแกนผ่านสตริงเพื่อค้นหาตำแหน่งสำหรับการจับคู่ในนิพจน์ทั่วไป

ฟังก์ชันนิพจน์ทั่วไป

ฟังก์ชัน Regex คือบรรทัดโค้ดที่ใช้เพื่อทำหน้าที่บางอย่างตามที่ผู้ใช้ระบุจากชุดของค่าข้อมูลที่จัดหา

หมายเหตุ: ในการเขียนฟังก์ชัน สตริงดิบจะใช้สำหรับนิพจน์ทั่วไปเพื่อหลีกเลี่ยงข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x ทำได้โดยการเพิ่มตัวห้อย r ก่อนแต่ละรูปแบบในนิพจน์

ฟังก์ชันทั่วไปที่ใช้ในนิพจน์อธิบายไว้ด้านล่าง

1. re.findall()

ฟังก์ชันนี้ส่งคืนรูปแบบทั้งหมดในสตริงหากพบการจับคู่และส่งคืนรายการว่างหากไม่พบรายการที่ตรงกัน ตัวอย่างเช่น ฟังก์ชัน string = re.findall('[aeiou]', regex_filename) ถูกใช้เพื่อค้นหาการเกิดเสียงสระในชื่อไฟล์

2. re.split()

ฟังก์ชันนี้ใช้เพื่อแยกสตริงในกรณีที่มีการจับคู่กับอักขระที่ระบุ เช่น พบช่องว่าง ในกรณีที่ไม่พบรายการที่ตรงกัน จะส่งคืนสตริงว่าง

3. re.sub()

ฟังก์ชันแทนที่ข้อความที่ตรงกันด้วยเนื้อหาของตัวแปรแทนที่ที่กำหนด ตรงกันข้ามกับฟังก์ชันอื่นๆ หากไม่พบรูปแบบ สตริงเดิมจะถูกส่งคืน

4. วิจัย ()

หนึ่งในฟังก์ชันพื้นฐานที่ช่วยในการเรียนรู้วิธีแยกวิเคราะห์ข้อความคือฟังก์ชันการค้นหา ช่วยในการค้นหารูปแบบในสตริงและส่งคืนวัตถุที่ตรงกัน หากการค้นหาล้มเหลวในการระบุการจับคู่ จะไม่มีการคืนค่าใดๆ

5. คอมไพล์ใหม่ (แพทเทิร์น)

ฟังก์ชันนี้ใช้เพื่อรวบรวมรูปแบบนิพจน์ทั่วไปลงใน RegexObject ซึ่งได้กล่าวถึงก่อนหน้านี้

ข้อกำหนดอื่น ๆ

ข้อกำหนดที่ระบุไว้เป็นคุณสมบัติเพิ่มเติมที่ใช้โดยโปรแกรมเมอร์ขั้นสูงในการวิเคราะห์ข้อมูล

  • เพื่อให้เห็นภาพนิพจน์ทั่วไป ใช้ regexper และ
  • ในการทดสอบนิพจน์ทั่วไป จะใช้ regex101

อ่านเพิ่มเติม: วิธีติดตั้ง NumPy บน Windows 10

กระบวนการแยกวิเคราะห์ข้อความ

วิธีการแยกวิเคราะห์ข้อความในตัวเลือกที่ซับซ้อนนี้อธิบายไว้ด้านล่าง

  • ขั้นตอนสำคัญที่สุดคือการทำความเข้าใจรูปแบบการป้อนข้อมูลโดยการอ่านเนื้อหาของไฟล์ ตัวอย่างเช่น ใช้ฟังก์ชัน with open และ read() เพื่อเปิดและอ่านเนื้อหาของไฟล์ที่ชื่อ sample ไฟล์ ตัวอย่าง มีเนื้อหาจากไฟล์ file.txt ; หากต้องการเรียนรู้วิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ ไฟล์จะต้องอ่านให้ครบถ้วน
  • เนื้อหาของไฟล์ถูกพิมพ์เพื่อวิเคราะห์ข้อมูลด้วยตนเองเพื่อค้นหาข้อมูลเมตาของค่า ที่นี่ใช้ฟังก์ชัน print() เพื่อพิมพ์เนื้อหาของไฟล์ ตัวอย่าง
  • แพ็คเกจข้อมูลที่จำเป็นในการแยกวิเคราะห์ข้อความจะถูกนำเข้าไปยังโค้ด และตั้งชื่อให้กับคลาสสำหรับการเข้ารหัสเพิ่มเติม ที่นี่ นิพจน์ทั่วไป และ แพนด้า จะถูกนำเข้า
  • นิพจน์ทั่วไปที่จำเป็นสำหรับโค้ดถูกกำหนดไว้ในไฟล์โดยรวมถึงรูปแบบ regex และฟังก์ชัน regex ซึ่งช่วยให้วัตถุข้อความหรือคลังข้อมูลนำรหัสไปวิเคราะห์ข้อมูลได้
  • หากต้องการทราบวิธีแยกวิเคราะห์ข้อความ คุณสามารถอ้างอิงถึงโค้ดตัวอย่างที่ให้ไว้ที่นี่ ฟังก์ชัน compile() ใช้เพื่อรวบรวมสตริงจากกลุ่ม stringname1 ของ ชื่อไฟล์ ฟังก์ชันตรวจสอบการจับคู่ใน regex ถูกใช้โดยคำสั่ง ief_parse_line(line) ,
  • ตัวแยกวิเคราะห์บรรทัดสำหรับโค้ดเขียนโดยใช้ def_parse_file(filepath) ซึ่งฟังก์ชันที่กำหนดไว้จะตรวจสอบ regex ที่ตรงกันทั้งหมดในฟังก์ชันที่ระบุ ที่นี่เมธอด regex search() จะค้นหาคีย์ rx ในชื่อไฟล์ ไฟล์ และส่งคืนคีย์และการจับคู่ของ regex ที่ตรงกันครั้งแรก ปัญหาใดๆ กับขั้นตอนนี้อาจนำไปสู่ข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x
  • ขั้นตอนต่อไปคือการเขียน File Parser โดยใช้ฟังก์ชัน file parser ซึ่งก็คือ def_parse_file(filepath) รายการว่างถูกสร้างขึ้นเพื่อรวบรวมข้อมูลของรหัส เนื่องจาก data = [] การจับคู่จะถูกตรวจสอบที่แต่ละบรรทัดโดย การจับคู่ = _parse_line(line) และข้อมูลค่าที่แน่นอนจะถูกส่งคืนตามประเภทข้อมูล
  • หากต้องการแยกตัวเลขและค่าของตาราง ให้ใช้คำสั่ง line.strip().split(',') คำสั่ง row{} ใช้เพื่อสร้างพจนานุกรมที่มีแถวข้อมูล คำสั่ง data.append(row) ใช้เพื่อทำความเข้าใจข้อมูลและแยกวิเคราะห์เป็นรูปแบบตาราง

คำสั่ง data = pd.DataFrame(data) ถูกใช้เพื่อสร้าง DataFrame แพนด้าจากค่า dict หรือคุณสามารถใช้คำสั่งต่อไปนี้เพื่อวัตถุประสงค์ที่เกี่ยวข้องตามที่ระบุไว้ด้านล่าง

  • data.set_index(['string', 'integer'], inplace=True) เพื่อกำหนดดัชนีของตาราง
  • data = data.groupby(level=data.index.names).first() เพื่อรวมและลบ nans
  • data = data.apply(pd.to_numeric, errors='ignore') เพื่ออัปเกรดคะแนนจากค่าทศนิยมเป็นค่าจำนวนเต็ม

ขั้นตอนสุดท้ายในการทราบวิธีแยกวิเคราะห์ข้อความคือการทดสอบ parser โดยใช้ คำสั่ง if โดยการกำหนดค่าให้กับ ข้อมูล ตัวแปรและพิมพ์โดยใช้คำสั่ง print(data)

โค้ดตัวอย่างสำหรับคำอธิบายข้างต้นมีให้ที่นี่

 ด้วย open('file.txt') เป็นตัวอย่าง:
sample_contents = sample.read()
พิมพ์ (sample_contents)
นำเข้าอีกครั้ง
นำเข้าแพนด้าเป็น pd
rx_filename = {
'string1': re.compile(r 'string = (?<P<stringname1>,*)\n'),
}
ief_parse_line(บรรทัด):
สำหรับคีย์ rx ใน rx_filename.items():
ตรงกัน = rx.search(บรรทัด)
ถ้าตรงกัน:
คีย์กลับจับคู่
กลับไม่มี ไม่มี
def parse_file (เส้นทางของไฟล์):
ข้อมูล = []
ด้วย open(filepath, 'r') เป็น file_object:
บรรทัด = file_object.readline()
ในขณะที่สาย:
คีย์, จับคู่ = _parse_line(line)
ถ้าคีย์ == 'string1':
string = match.group('string1')
จำนวนเต็ม = int(string1)
value_type = match.group('string1')
บรรทัด = file_object.readline()
ในขณะที่ line.strip():
ตัวเลข ค่า = line.strip().split(',')
ค่า = ค่าแถบ ()
แถว = {
'Data1': string1,
'Data2': หมายเลข,
value_type: ค่า
}
data.append(แถว)
บรรทัด = file_object.readline()
บรรทัด = file_object.readline()
data = pd.DataFrame (ข้อมูล)
ส่งคืนข้อมูล
ถ้า _ _name_ _ = = '_ _main_ _':
filepath = 'sample.txt'
data = parse (พาธไฟล์)
พิมพ์ (ข้อมูล) 

ฟังก์ชันนิพจน์ทั่วไปของรหัสหลาม

วิธีที่ 2: ผ่าน Word Tokenization

กระบวนการแปลงข้อความหรือคลังข้อมูลเป็นโทเค็นหรือชิ้นส่วนที่เล็กกว่าตามกฎบางอย่างเรียกว่า Tokenization หากต้องการเรียนรู้วิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ จำเป็นต้องวิเคราะห์คำว่า tokenization commands ในโค้ด วิธีนี้คล้ายกับ regex คุณสามารถสร้างกฎของตัวเองได้ และช่วยในงานประมวลผลข้อความล่วงหน้า เช่น การจับคู่ส่วนของคำพูด นอกจากนี้ กิจกรรมต่างๆ เช่น การค้นหาและจับคู่คำทั่วไป การล้างข้อความ และการเตรียมข้อมูลให้พร้อมสำหรับเทคนิคการวิเคราะห์ข้อความขั้นสูง เช่น การวิเคราะห์ความคิดเห็น จะดำเนินการในวิธีนี้ หากการใช้โทเค็นไม่ถูกต้อง อาจเกิดข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x

ห้องสมุด Ntlk

กระบวนการนี้ได้รับความช่วยเหลือจากไลบรารีชุดเครื่องมือภาษายอดนิยมที่เรียกว่า nltk ซึ่งมีชุดฟังก์ชันมากมายสำหรับการทำงาน NLP จำนวนมาก สามารถดาวน์โหลดได้ผ่านแพ็คเกจการติดตั้ง Pip หรือ Pip หากต้องการทราบวิธีแยกวิเคราะห์ข้อความ คุณสามารถใช้ชุดฐานของการแจกจ่าย Anaconda ซึ่งรวมถึงไลบรารีโดยค่าเริ่มต้น

รูปแบบของ Tokenization

รูปแบบทั่วไปของวิธีการนี้คือ tokenization คำและ tokenization ประโยค เนื่องจากโทเค็นระดับคำ คำแรกจะพิมพ์คำเดียวเพียงครั้งเดียว ในขณะที่ชุดหลังพิมพ์คำที่ระดับประโยค

กระบวนการแยกวิเคราะห์ข้อความ

  • ไลบรารีชุดเครื่องมือ ntlk ถูกนำเข้าและฟอร์มโทเค็นจะถูกนำเข้าจากไลบรารี
  • มีการกำหนดสตริงและให้คำสั่งเพื่อดำเนินการโทเค็น
  • ขณะที่พิมพ์สตริง ผลลัพธ์จะเป็น คอมพิวเตอร์เป็นคำ
  • ในกรณีของ word tokenization หรือ word_tokenize() แต่ละคำในประโยคจะถูกพิมพ์แยกกันภายใน '' และ คั่นด้วยเครื่องหมายจุลภาค ผลลัพธ์ของคำสั่งจะเป็น 'คอมพิวเตอร์', 'คือ', 'ที่', 'คำ', '.'
  • ในกรณีของการใช้ประโยค tokenization หรือ send_tokenize() แต่ละประโยคจะอยู่ภายใน '' และอนุญาตให้มีการทำซ้ำคำได้ ผลลัพธ์ของคำสั่งจะเป็น 'คอมพิวเตอร์คือคำ'

รหัสที่อธิบายขั้นตอนสำหรับการทำโทเค็นด้านบนมีให้ที่นี่

 นำเข้า nltk
จาก nltk.tokenize นำเข้า send_tokenize, word_tokenize
string = "คอมพิวเตอร์คือคำ"
พิมพ์ (สตริง)
พิมพ์(word_tokenize(สตริง))
พิมพ์(sent_tokenize(สตริง)) 

รหัสหลาม nltk

อ่านเพิ่มเติม: วิธีแก้ไข javascript:void(0) Error

วิธีที่ 3: ผ่าน DocParser Class

เช่นเดียวกับ DataFrame Class คุณสามารถใช้ Class DocParser เพื่อแยกวิเคราะห์ข้อความในโค้ด คลาสอนุญาตให้คุณเรียกใช้ฟังก์ชัน parse ด้วยพาธไฟล์

กระบวนการแยกวิเคราะห์ข้อความ

หากต้องการทราบวิธีแยกวิเคราะห์ข้อความโดยใช้คลาส DocParser ให้ทำตามคำแนะนำด้านล่าง

  • ฟังก์ชัน get_format(ชื่อไฟล์) ใช้เพื่อแยกนามสกุลไฟล์ ส่งคืนตัวแปรชุดสำหรับฟังก์ชัน และส่งผ่านไปยังฟังก์ชันถัดไป ตัวอย่างเช่น p1 = get_format(filename) จะแตกนามสกุลไฟล์ของ filename ตั้งค่าเป็นตัวแปร p1 และส่งไปยังฟังก์ชันถัดไป
  • โครงสร้างเชิงตรรกะพร้อมฟังก์ชันอื่นๆ ถูกสร้างขึ้นโดยใช้คำสั่งและฟังก์ชัน if-elif-else
  • หากนามสกุลไฟล์ถูกต้องและโครงสร้างเป็นตรรกะ ฟังก์ชัน get_parser จะใช้เพื่อแยกวิเคราะห์ข้อมูลในเส้นทางไฟล์และส่งคืนวัตถุสตริงให้กับผู้ใช้

หมายเหตุ: หากต้องการทราบวิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ ฟังก์ชันนี้ต้องใช้งานอย่างถูกต้อง

  • การแยกวิเคราะห์ค่าข้อมูลทำได้โดยใช้นามสกุลไฟล์ของไฟล์ การใช้งานคลาสที่เป็นรูปธรรมซึ่ง parse_txt หรือ parse_docx ใช้เพื่อสร้างวัตถุสตริงจากส่วนต่าง ๆ ของประเภทไฟล์ที่กำหนด
  • การแยกวิเคราะห์สามารถทำได้สำหรับไฟล์ที่มีนามสกุลอื่นๆ ที่อ่านได้ เช่น parse_pdf , parse_html และ parse_pptx
  • ค่าข้อมูลและอินเทอร์เฟซสามารถนำเข้าไปยังแอปพลิเคชันด้วยคำสั่งนำเข้าและสร้างอ็อบเจ็กต์ DocParser ซึ่งสามารถทำได้โดยแยกไฟล์ในภาษา Python เช่น parse_file.py การดำเนินการนี้ต้องทำอย่างระมัดระวังเพื่อหลีกเลี่ยงข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x

วิธีที่ 4: ผ่านเครื่องมือแยกวิเคราะห์ข้อความ

เครื่องมือ Parse text ใช้เพื่อดึงข้อมูลเฉพาะจากตัวแปรและจับคู่กับตัวแปรอื่นๆ สิ่งนี้ไม่ขึ้นกับเครื่องมืออื่นๆ ที่ใช้ในงาน และเครื่องมือแพลตฟอร์ม BPA ใช้เพื่อบริโภคและส่งออกตัวแปร ใช้ลิงก์ที่ให้ไว้ที่นี่เพื่อเข้าถึง Parse Text Tool ออนไลน์และใช้คำตอบที่ให้ไว้ก่อนหน้านี้เกี่ยวกับวิธีการแยกวิเคราะห์ข้อความ

เครื่องมือแยกวิเคราะห์ข้อความ

วิธีที่ 5: ผ่าน TextFieldParser (Visual Basic)

TextFieldParser ใช้อ็อบเจ็กต์เพื่อแยกวิเคราะห์และประมวลผลไฟล์ขนาดใหญ่มากที่มีโครงสร้างและตัวคั่น ความกว้างและคอลัมน์ของข้อความ เช่น ไฟล์บันทึกหรือข้อมูลฐานข้อมูลดั้งเดิม สามารถใช้วิธีนี้ได้ วิธีการแยกวิเคราะห์คล้ายกับการวนซ้ำโค้ดบนไฟล์ข้อความ และส่วนใหญ่จะใช้เพื่อแยกฟิลด์ของข้อความที่คล้ายกับวิธีการจัดการสตริง สิ่งนี้ทำเพื่อโทเค็นสตริงที่คั่นและฟิลด์ที่มีความกว้างต่างๆ โดยใช้ตัวคั่นที่กำหนดไว้ เช่น เครื่องหมายจุลภาคหรือพื้นที่แท็บ

ฟังก์ชั่นการแยกวิเคราะห์ข้อความ

สามารถใช้ฟังก์ชันต่อไปนี้เพื่อแยกวิเคราะห์ข้อความในวิธีนี้

  • ในการกำหนดตัวคั่น จะใช้ SetDelimiters ตัวอย่างเช่น คำสั่ง testReader.SetDelimiters (vbTab) ใช้เพื่อตั้งค่าพื้นที่ แท็บ เป็นตัวคั่น
  • ในการตั้งค่าความกว้างของฟิลด์เป็นค่าจำนวนเต็มบวกเป็นความกว้างของฟิลด์คงที่ของไฟล์ข้อความ คุณสามารถใช้คำสั่ง testReader.SetFieldWidths (จำนวนเต็ม)
  • ในการทดสอบประเภทฟิลด์ของข้อความ คุณสามารถใช้คำสั่งต่อไปนี้ testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth

วิธีการหา MatchObject

มีวิธีพื้นฐานสองวิธีในการค้นหา MatchObject ในโค้ดหรือข้อความที่แยกวิเคราะห์

  • วิธีแรกคือการกำหนดรูปแบบและวนรอบไฟล์โดยใช้วิธี ReadFields วิธีนี้จะช่วยในการประมวลผลแต่ละบรรทัดของรหัส
  • เมธอด PeekChars ใช้สำหรับตรวจสอบแต่ละฟิลด์ทีละฟิลด์ก่อนอ่าน กำหนดหลายรูปแบบ และตอบสนอง

ไม่ว่าในกรณีใด หากฟิลด์ไม่ตรงกับรูปแบบที่ระบุขณะดำเนินการแยกวิเคราะห์หรือค้นหาวิธีแยกวิเคราะห์ข้อความ ข้อยกเว้น MalformedLineException จะถูกส่งกลับ

เคล็ดลับแบบมือโปร: วิธีแยกวิเคราะห์ข้อความผ่าน MS Excel

เป็นวิธีสุดท้ายและง่ายในการแยกวิเคราะห์ข้อความ คุณสามารถใช้แอป MS Excel เป็นตัวแยกวิเคราะห์เพื่อสร้างไฟล์ที่คั่นด้วยแท็บและคั่นด้วยเครื่องหมายจุลภาค ซึ่งจะช่วยในการตรวจสอบผลการแยกวิเคราะห์ของคุณและช่วยในการค้นหาวิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์

1. เลือกค่าข้อมูลในไฟล์ต้นฉบับแล้วกดปุ่ม Ctrl + C พร้อมกันเพื่อคัดลอกไฟล์

2. เปิดแอป Excel โดยใช้แถบค้นหาของ windows

เปิดแอป Microsoft Excel

3. คลิกที่เซลล์ A1 และกดปุ่ม Ctrl + V พร้อมกันเพื่อวางข้อความที่คัดลอก

4. เลือกเซลล์ A1 ไปที่แท็บ ข้อมูล แล้วคลิกตัวเลือก ข้อความเป็นคอลัมน์ ในส่วน เครื่องมือข้อมูล

ไปที่แท็บข้อมูลแล้วคลิกตัวเลือกข้อความเป็นคอลัมน์

5ก. เลือกตัวเลือก ตัว คั่น หากใช้ เครื่องหมายจุลภาค หรือพื้นที่ แท็บ เป็นตัวคั่น แล้วคลิกปุ่ม ถัดไป และ เสร็จสิ้น

เลือกตัวเลือกตัวคั่นหากใช้เครื่องหมายจุลภาคหรือพื้นที่แท็บเป็นตัวคั่นและคลิกที่ปุ่มถัดไปและเสร็จสิ้น

5B. เลือกตัวเลือก ความกว้างคง ที่ กำหนดค่าสำหรับตัวคั่น และคลิกที่ปุ่ม ถัดไป และ เสร็จสิ้น

เลือกตัวเลือกความกว้างคงที่กำหนดค่าสำหรับตัวคั่นและคลิกที่ปุ่มถัดไปและเสร็จสิ้น

อ่านเพิ่มเติม: วิธีแก้ไขข้อผิดพลาดการย้ายคอลัมน์ Excel

วิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์

ข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x อาจเกิดขึ้นบนอุปกรณ์ Android เช่น ข้อผิดพลาดในการแยกวิเคราะห์: มีปัญหาในการแยกวิเคราะห์แพ็คเกจ กรณีนี้มักเกิดขึ้นเมื่อติดตั้งแอปจาก Google Play Store ไม่สำเร็จหรือขณะใช้งานแอปของบุคคลที่สาม

ข้อความแสดงข้อผิดพลาด x อาจเกิดขึ้นหากรายการของเวกเตอร์อักขระเป็นแบบวนซ้ำ และฟังก์ชันอื่นๆ สร้างแบบจำลองเชิงเส้นสำหรับการคำนวณค่าข้อมูล ข้อความแสดงข้อผิดพลาดคือ Error in parse(text = x, keep.source = FALSE):<text>:2.0:unexpected end of input 1:OffenceAgainst ~ ^

คุณสามารถอ่านบทความเกี่ยวกับวิธีการแก้ไขข้อผิดพลาดในการแยกวิเคราะห์บน Android เพื่อเรียนรู้สาเหตุและวิธีการแก้ไขข้อผิดพลาด

รีเซ็ตสมาร์ทโฟน แก้ไขข้อผิดพลาดในการแยกวิเคราะห์อินพุต $ ใน Windows 10

นอกเหนือจากวิธีแก้ปัญหาในคู่มือแล้ว คุณสามารถลองแก้ไขดังต่อไปนี้

  • ดาวน์โหลดไฟล์ .apk อีกครั้งหรือกู้คืนชื่อไฟล์
  • การกู้คืนการเปลี่ยนแปลงในไฟล์ Androidmanifest.xml หากคุณมีทักษะการเขียนโปรแกรมระดับผู้เชี่ยวชาญ

ที่แนะนำ:

  • วิธีลบบัญชี Facebook ของคนอื่น
  • ทักษะ 10 อันดับแรกที่จำเป็นสำหรับการเป็นแฮ็กเกอร์ที่มีจริยธรรม
  • 21 ทางเลือก Pastebin ที่ดีที่สุดในการแชร์รหัสและข้อความ
  • คำสั่งแก้ไขล้มเหลวด้วยรหัสข้อผิดพลาด 1 Python Egg Info

บทความนี้ช่วยในการสอน วิธีแยกวิเคราะห์ข้อความ และเรียนรู้วิธีแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ แจ้งให้เราทราบว่าวิธีใดที่ช่วยแก้ไขข้อผิดพลาดในการแยกวิเคราะห์ข้อความ x และวิธีการแยกวิเคราะห์ที่ต้องการ กรุณาแบ่งปันข้อเสนอแนะและข้อสงสัยของคุณในส่วนความคิดเห็นด้านล่าง