ไม่กี่เดือนที่ผ่านมา ฉันพบเนื้อหาอรรถาภิธานภาษาจีน (หลายร้อย K) บนอินเทอร์เน็ต จากนั้นฉันก็อยากจะเขียนโปรแกรมการแบ่งส่วนคำ ฉันไม่มีงานวิจัยเกี่ยวกับการแบ่งส่วนคำภาษาจีน ดังนั้นฉันจึงเขียนมันขึ้นมาจากจินตนาการของตัวเอง หากมีผู้เชี่ยวชาญในสาขานี้ ขอความคิดเห็นเพิ่มเติมครับ
1. อรรถาภิ
ธานมีประมาณ 50,000 คำ (สามารถค้นหาใน Google และสามารถใช้ศัพท์ที่คล้ายกันได้) ผมสรุปได้ดังนี้
ภูมิภาค 82
สำคัญ 81
สำนักข่าวซินหัว 80
เทคโนโลยี 80
ประชุมครั้งที่ 80
ตัวฉันเอง 79
นายทหารฝ่ายเสนาธิการ 78
พนักงาน 78
มิสซา 77
หมายเลข 77
วันนี้ 76
เกย์ 76
แผนก 75
เสริมกำลัง 75
องค์กร 75
คอลัมน์แรกคือคำ และคอลัมน์ที่สองคือน้ำหนัก อัลกอริธึมการแบ่งส่วนคำที่ฉันเขียนไม่ได้ใช้น้ำหนักในขณะนี้
2. แนวคิดการออกแบบ
คำอธิบายสั้น ๆ ของอัลกอริทึม:
สำหรับสตริง S ให้สแกนจากด้านหน้าไปด้านหลัง และสำหรับแต่ละคำที่สแกน ให้ค้นหารายการที่ตรงกันที่ยาวที่สุดจากพจนานุกรม ตัวอย่างเช่น สมมติว่า S="ฉันเป็นพลเมืองของสาธารณรัฐประชาชนจีน" และพจนานุกรมประกอบด้วย "สาธารณรัฐประชาชนจีน", "จีน", "พลเมือง ", "ประชาชน", "สาธารณรัฐ"... ...และคำอื่นๆ เมื่อสแกนคำว่า "中" แล้ว ให้เริ่มจากอักขระตรงกลางแล้วนำอักขระ 1, 2, 3,... ("中" , "中华", "中华人") ,"สาธารณรัฐประชาชนจีน", "สาธารณรัฐประชาชนจีน", "สาธารณรัฐประชาชนจีน", "สาธารณรัฐประชาชนจีน", "สาธารณรัฐประชาชนจีน") สตริงการจับคู่ที่ยาวที่สุดในคำศัพท์คือ "สาธารณรัฐประชาชนจีน" จากนั้น ณ จุดนี้เครื่องสแกนจะก้าวไปสู่คำว่า "สาธารณะ"
โครงสร้างข้อมูล:
การเลือกโครงสร้างข้อมูลมีผลกระทบอย่างมากต่อประสิทธิภาพ เพื่อบันทึกคำศัพท์ คู่คีย์-ค่าคือ (คีย์, จำนวนการแทรก) สำหรับแต่ละคำ หากคำนั้นมี N คำ ดังนั้น 1,1~2,1~3,...1~N คำของ จะใช้คำเป็นคีย์และแทรกลงใน _rootTable และหากคีย์ซ้ำกัน ค่าต่อไปนี้จะเพิ่มขึ้น
3.
ขั้นตอนเฉพาะของโปรแกรมมีดังนี้ (โปรแกรมประกอบด้วยปัจจัยต่างๆ เช่น น้ำหนัก จำนวนการแทรก ฯลฯ และอัลกอริทึมปัจจุบันไม่ได้ใช้สิ่งเหล่านี้ ซึ่งสามารถใช้เพื่อเขียนอัลกอริทึมการแบ่งส่วนคำที่มีประสิทธิภาพมากขึ้น):
ChineseWordUnit.cs // struct--(คำ, น้ำหนัก) คู่
1 โครงสร้างสาธารณะ ChineseWordUnit
2 {
3 สตริงส่วนตัว _word;
4 ส่วนตัว int _power;
5
6 /***//// <สรุป>
7 /// คำภาษาจีนที่ตรงกับหน่วยคำภาษาจีน
8 /// </สรุป>
9 คำสตริงสาธารณะ
10 {
11 ได้รับ
12 {
13 กลับ _word;
14}
15}
16
17 /***//// <สรุป>
18 /// น้ำหนักของคำภาษาจีน.
19 /// </สรุป>
20 อำนาจสาธารณะ int
ยี่สิบเอ็ด {
22 ได้รับ
ยี่สิบสาม {
24 กลับ _power;
25}
26}
27
28 /***//// <สรุป>
29 /// การเริ่มต้นโครงสร้าง
30 /// </สรุป>
31 /// <param name="word">คำภาษาจีน</param>
32 /// <param name="power">น้ำหนักของคำ</param>
33 ChineseWordUnit สาธารณะ (คำสตริง, พลัง int)
34 {
35 this._word = คำ;
36 this._power = กำลัง;
37 }
38 }
ChineseWordsHashCountSet.cs //คอนเทนเนอร์คำศัพท์
1 /***////// <สรุป>
2 /// คลาสพจนานุกรมที่บันทึกจำนวนครั้งที่สตริงปรากฏที่ด้านหน้าคำภาษาจีนที่บันทึกไว้ในพจนานุกรมภาษาจีน หากสตริง "中" ปรากฏที่ด้านหน้าของ "จีน" หลายครั้งจะถูกบันทึกไว้ในพจนานุกรม
3 /// </สรุป>
4 ChineseWordsHashCountSet คลาสสาธารณะ
5 {
6 /***//// <สรุป>
7 /// แฮชเทเบิลที่บันทึกจำนวนครั้งที่สตริงปรากฏในคำภาษาจีน คีย์คือสตริงเฉพาะ และค่าคือจำนวนครั้งที่สตริงปรากฏในคำภาษาจีน
8 /// </สรุป>
9 Hashtable ส่วนตัว _rootTable;
10
11 /***////// <สรุป>
12 /// การเริ่มต้นประเภท
13 /// </สรุป>
14 สาธารณะ ChineseWordsHashCountSet()
15 {
16 _rootTable = ใหม่ Hashtable();
17}
18
19 /***////// <สรุป>
20 /// ค้นหาจำนวนครั้งที่สตริงที่ระบุปรากฏที่ด้านหน้าคำภาษาจีนที่บันทึกไว้ในพจนานุกรมภาษาจีน
21 /// </สรุป>
22 /// <param name="s">สตริงที่ระบุ</param>
23 /// <returns>จำนวนครั้งที่สตริงปรากฏที่ด้านหน้าของคำภาษาจีนที่บันทึกไว้ในพจนานุกรมภาษาจีน ถ้าเป็น -1 แสดงว่าไม่ปรากฏ </ผลตอบแทน>
24 int สาธารณะ GetCount (สตริง s)
25 {
26 ถ้า (!this._rootTable.ContainsKey(s.Length))
27 {
28 กลับ -1;
29 }
30 Hashtable _tempTable = (Hashtable)this._rootTable[s.Length];
31 ถ้า (!_tempTable.ContainsKey)
32 {
33 กลับ -1;
34}
35 กลับ (int)_tempTable[s];
36}
37
38 /***////// <สรุป>
39 /// ใส่คำลงในพจนานุกรมเลขย่อย แยกคำและใส่ลงในพจนานุกรมของเวลา
40 /// </สรุป>
41 /// <param name="s">สตริงที่ประมวลผล </พารามิเตอร์>
42 โมฆะสาธารณะ InsertWord (สตริง s)
43 {
44 for(int i=0;i<s.Length;i++)
45 {
46 สตริง _s = s.สตริงย่อย(0,i+1);
47 นี้.InsertSubString(_s);
48 }
49 }
50
51 /***//// <สรุป>
52 /// บันทึกจำนวนครั้งที่สตริงถูกแทรกลงในพจนานุกรมเวลา
53 /// </สรุป>
54 /// <param name="s">สตริงที่แทรก </พารามิเตอร์>
55 โมฆะส่วนตัว InsertSubString (สตริง)
56 {
57 ถ้า (!_rootTable.ContainsKey(s.Length)&&s.Length>0)
58 {
59 Hashtable _newHashtable = ใหม่ Hashtable();
60 _rootTable.Add(s.ความยาว,_newHashtable);
61 }
62 Hashtable _tempTable = (Hashtable)_rootTable[s.Length];
63 ถ้า (!_tempTable.ContainsKey(s))
64 {
65 _tempTable.Add(s,1);
66 }
67 อื่น ๆ
68 {
69 _tempTable[s]=(int)_tempTable[s]+1;
70}
71 }
72 }
ChineseParse.cs //ตัวแบ่งส่วนคำ
1 /**//// <สรุป>
2 /// ตัวแบ่งคำภาษาจีน
3 /// </สรุป>
4 ChineseParse ชั้นเรียนสาธารณะ
5 {
6 ChineseWordsHashCountSet ส่วนตัวแบบคงที่ _countTable;
7
8 คงที่ ChineseParse()
9 {
10 _countTable = คำภาษาจีนใหม่HashCountSet();
11 InitFromFile("ThaiDictionary.txt");
12}
13
14 /***////// <สรุป>
15 /// เริ่มต้นพจนานุกรมคำภาษาจีนและพจนานุกรมเวลาสตริงจากไฟล์ที่ระบุ
16 /// </สรุป>
17 /// <param name="fileName">ชื่อไฟล์</param>
18 โมฆะคงที่ส่วนตัว InitFromFile (ชื่อไฟล์สตริง)
19 {
20 เส้นทางสตริง = Directory.GetCurrentDirectory() +@" " + fileName;
21 ถ้า (File.Exists (เส้นทาง))
ยี่สิบสอง {
23 โดยใช้ (StreamReader sr = File.OpenText(path))
ยี่สิบสี่ {
25 สตริง s = "";
26 ในขณะที่ ((s = sr.ReadLine()) != null)
27 {
28 ChineseWordUnit _tempUnit = เริ่มต้นหน่วย;
29 _countTable.InsertWord(_tempUnit.Word);
30}
31}
32}
33}
34
35 /***//// <สรุป>
36 /// แยกสตริงลงใน ChineseWordUnit
37 /// </สรุป>
38 /// <param name="s">สตริง</param>
39 /// <returns>หน่วยคำภาษาจีนที่แยกวิเคราะห์</returns>
40 ChineseWordUnit InitUnit แบบคงที่ส่วนตัว (สตริง)
41 {
42 Regex reg = Regex ใหม่(@"s+");
43 string[] temp = reg.Split(s);
44 ถ้า (temp.Length!=2)
45 {
46 โยนข้อยกเว้นใหม่ ("ข้อผิดพลาดในการแยกวิเคราะห์สตริง: "+s);
47 }
48 ส่งคืน ChineseWordUnit ใหม่ (temp[0],Int32.Parse(temp[1]));
49 }
50
51 /***//// <สรุป>
52 /// วิเคราะห์สตริงอินพุตและตัดเป็นคำ
53 /// </สรุป>
54 /// <param name="s">สตริงที่จะตัด</param>
55 /// <returns>อาร์เรย์คำภาษาจีนที่ได้จากการตัด</returns>
56 สตริงสาธารณะคงที่ [] ParseChinese (สตริง s)
57 {
58 int _length = s.ความยาว;
59 string _temp = String.Empty;
60 ArrayList _words = ใหม่ ArrayList();
61
62 for(int i=0;i<s.Length;)
63 {
64 _temp = s.สตริงย่อย(i,1);
65 ถ้า (_countTable.GetCount(_temp)>1)
66 {
67 int j=2;
68
69 สำหรับ (;i+j<s.Length+1&&_countTable.GetCount(s.Substring(i,j))>0;j++)
70 {
71 }
72 _temp = s.สตริงย่อย(i,j-1);
73 ผม = ผม + เจ - 2;
74}
75i++;
76 _words.เพิ่ม(_temp);
77 }
78
79 string[] _tempStringArray = สตริงใหม่[_words.Count];
80 _words.CopyTo(_tempStringArray);
81 กลับ _tempStringArray;
82}
83 }
IV.
การทดสอบเปรียบเทียบระหว่างการทดสอบและโปรแกรมสาธิตการแบ่งส่วนคำขนาดใหญ่:
กรณีที่ 1: Sina Sports News หลังจากถูกยูเวนตุสตกรอบ โค้ชเรอัลมาดริด บิเซนเต้ เดล บอสเก้ ปฏิเสธที่จะยอมรับคำวิจารณ์ของสื่อเกี่ยวกับการป้องกันของทีม และในเวลาเดียวกันด้วย ได้ทำการทดสอบผู้เล่นตัวจริงของเขา “ความพ่ายแพ้เป็นความรับผิดชอบของทั้งทีม ไม่ใช่แค่การป้องกัน” เดล บอสเก้ กล่าว “ผมไม่คิดว่าเราเล่นเลอะเทอะ” “เราผ่านเข้ารอบรองชนะเลิศและต่อสู้อย่างหนักระหว่างทางไปถึงที่นั่นด้วยซ้ำ” เกมวันนี้เรามีโอกาสพลิกสถานการณ์เล็กน้อย แต่คู่ต่อสู้ที่เราเผชิญหน้าแข็งแกร่งมากและพวกเขาเล่นได้ดีมาก "แฟน ๆ ของเราควรภูมิใจกับผลงานของเราในแชมเปี้ยนส์ลีกในช่วง 2-3 ฤดูกาลที่ผ่านมา" บอสเก้กล่าวด้วย หลังจบเกม นักข่าวบางคนตั้งคำถามถึงการที่ เดล บอสเก้ หายไปจากกัมเบียสโซในตัวจริง โดยเชื่อว่าควรส่งผู้เล่นอีกคนในทีม ปาวิน ไปเสริมแนวรับ เกี่ยวกับข้อสงสัยนี้ เดล บอสเก้ปฏิเสธที่จะรับสิ่งที่เรียกว่า "ความรับผิดชอบ" และเชื่อว่าไม่มีปัญหากับรายชื่อตัวจริงของทีม “เราทำแบบนั้นมาตลอดทั้งฤดูกาล และผมไม่มีอะไรจะพูดเกี่ยวกับการเปลี่ยนแปลงบุคลากรในฤดูกาลนี้ บอสเก้กล่าวว่าเรอัล มาดริดยังคงมีแชมป์ลาลีกาเป็นเป้าหมาย” “เรอัล มาดริด ต่อสู้จนจบแชมเปี้ยนส์ลีกและเราจะทำแบบเดียวกันในลีก”
ผลการแบ่งส่วนคำจำนวนมาก:
Sina Sports News หลังจากตกรอบโดยยูเวนตุส โค้ชเรอัล มาดริด เดล บอสเก้ ปฏิเสธที่จะยอมรับคำวิจารณ์ของสื่อเกี่ยวกับทีม การป้องกันเขายังปกป้องผู้เล่นตัวจริงของเขาด้วย “ความพ่ายแพ้เป็นความรับผิดชอบของทั้งทีม ไม่ใช่แค่แนวรับ” บอสเก้ กล่าว “ผมไม่คิดว่าเราเล่นกันยุ่งเหยิง” “เราเข้าสู่รอบรองชนะเลิศและต่อสู้อย่างหนักเพื่อเลื่อนชั้น แม้กระทั่งทุกวันนี้ เกมที่เรามีโอกาสพลิกกลับหลายครั้ง แต่คู่ต่อสู้ที่เราเผชิญหน้าแข็งแกร่งมากและพวกเขาเล่นได้ดีมาก "แฟน ๆ ของเราควรภูมิใจกับผลงานของเราในแชมเปี้ยนส์ลีกในช่วงสองสามฤดูกาลที่ผ่านมา" บอสก์กล่าวด้วย หลังจบเกม นักข่าวบางคนตั้งคำถามถึงการขาดหายไปของบอสเก้จากกัมเบียสโซ่ในตัวจริง โดยเชื่อว่าควรส่งปาวินซึ่งเป็นผู้เล่นอีกคนในทีมไปเสริมแนวรับ เกี่ยวกับข้อสงสัยนี้ เดล บอสเก้ปฏิเสธที่จะรับสิ่งที่เรียกว่า "ความรับผิดชอบ" และเชื่อว่าไม่มีปัญหากับรายชื่อตัวจริงของทีม “เราทำแบบนั้นมาตลอดทั้งฤดูกาล และผมไม่มีอะไรจะพูดเกี่ยวกับการเปลี่ยนแปลงบุคลากรในฤดูกาลนี้ เดล บอสเก้กล่าวว่าเรอัล มาดริดยังคงมีแชมป์ลาลีกาเป็นเป้าหมาย” “เรอัล มาดริดต่อสู้จนจบแชมเปี้ยนส์ลีกและเราจะทำแบบเดียวกันในลีก”
ผลการแบ่งส่วน ChineseParse:
Sina Sports News หลังจากถูกยูเวนตุสตกรอบ เดล บอสเก้ โค้ชเรอัล มาดริดปฏิเสธที่จะยอมรับคำวิจารณ์ของสื่อเกี่ยวกับการป้องกันของทีม เขายังปกป้องผู้เล่นตัวจริงของเขาด้วย “ความพ่ายแพ้เป็นความรับผิดชอบของทั้งทีม ไม่ใช่แค่แนวรับ” บอสเก้ กล่าว “ผมไม่คิดว่าเราเล่นเลอะเทอะ” “เราเข้าสู่รอบรองชนะเลิศและต่อสู้อย่างหนักเพื่อเลื่อนชั้น แม้แต่ในเกมวันนี้” เรามีโอกาสพลิกกลับหลายครั้ง แต่คู่ต่อสู้ที่เราเผชิญหน้าแข็งแกร่งมากและพวกเขาเล่นได้ดีมาก "แฟน ๆ ของเราควรภูมิใจกับผลงานของเราในแชมเปี้ยนส์ลีกในช่วงสองสามฤดูกาลที่ผ่านมา" บอสก์กล่าวด้วย หลังจบเกม นักข่าวบางคนตั้งคำถามถึงการขาดหายไปของบอสเก้จากกัมเบียสโซ่ในตัวจริง โดยเชื่อว่าควรส่งปาวินซึ่งเป็นผู้เล่นอีกคนในทีมไปเสริมแนวรับ เกี่ยวกับข้อสงสัยนี้ เดล บอสเก้ปฏิเสธที่จะรับสิ่งที่เรียกว่า "ความรับผิดชอบ" และเชื่อว่าไม่มีปัญหากับรายชื่อตัวจริงของทีม “เราทำแบบนั้นมาตลอดทั้งฤดูกาล และผมไม่มีอะไรจะพูดเกี่ยวกับการเปลี่ยนแปลงบุคลากรในฤดูกาลนี้ เดล บอสเก้กล่าวว่าเรอัล มาดริดยังคงมีแชมป์ลาลีกาเป็นเป้าหมาย” "เรอัล มาดริดต่อสู้จนจบแชมเปี้ยนส์ลีก และเราจะทำเช่นเดียวกันในลีก"
เนื่องจากไม่มีคำศัพท์เฉพาะทางสำหรับกีฬาและชื่อต่างๆ ChineseParse จึงไม่สามารถจดจำคำศัพท์ระดับมืออาชีพเหล่านี้ได้
กรณีที่ 2: ครั้งแรกในรถยนต์ของจีน สังคม การเปลี่ยนแปลงครั้งใหญ่ใช้เวลากว่าสิบปี ใน "นโยบายอุตสาหกรรมอุตสาหกรรมยานยนต์" ที่ออกเมื่อปี พ.ศ. 2537 ประเด็นที่สะดุดตาที่สุดคือ "ค่อยๆ เปลี่ยนโครงสร้างการบริโภคของกองทุนสาธารณะเพื่อซื้อและใช้รถยนต์ ซึ่งส่วนใหญ่เป็นหน่วยงานบริหาร กลุ่ม สถาบัน และรัฐวิสาหกิจ" ตั้งแต่การซื้อรถยนต์ด้วยกองทุนสาธารณะเป็นหลักไปจนถึงรถยนต์ที่ค่อยๆ เข้าสู่ครัวเรือน การเปลี่ยนแปลงครั้งใหญ่ครั้งแรกได้นำมาซึ่งการปรับปรุงคุณภาพชีวิตของผู้คนอย่างมาก แรงผลักดันหลักสำหรับการเปลี่ยนแปลงนี้คือนโยบายอุตสาหกรรมที่ชัดเจน การเติบโตทางเศรษฐกิจของประเทศอย่างยั่งยืนและรวดเร็ว และอุตสาหกรรมยานยนต์ในประเทศที่กำลังเติบโต อย่างไรก็ตาม เมื่อเราก้าวเข้าสู่สังคมยานยนต์อย่างรวดเร็วซึ่งครอบงำโดยรถยนต์ส่วนตัว เรายังเผชิญกับสถานการณ์ใหม่และการทดสอบใหม่: รัฐบาลกลางเน้นย้ำถึงการจัดตั้งและการดำเนินการตามมุมมองทางวิทยาศาสตร์เกี่ยวกับการพัฒนา และกำหนดให้องค์กรในประเทศต้องปรับปรุงขีดความสามารถด้านนวัตกรรมที่เป็นอิสระ ในช่วง "การประชุมสองสมัย" ปีนี้ รัฐบาลกลางยังได้เสนอจิตวิญญาณของการสร้างสังคมที่มีความสามัคคีและสังคมที่มุ่งเน้นการอนุรักษ์ ขณะเดียวกัน สังคมรถยนต์ของประเทศของเรากำลังเผชิญกับปัจจัยที่ไม่เอื้ออำนวยหลายประการ เช่น การขาดแคลนพลังงาน ราคาน้ำมันที่สูงขึ้น และทรัพยากรที่ดินมีจำกัด เมื่อเทียบกับภูมิหลังนี้ การดำเนินการเปลี่ยนแปลงครั้งใหญ่ครั้งที่สองจึงเป็นเรื่องเร่งด่วน
ผลลัพธ์จากการแบ่งส่วนคำจำนวนมาก:
การเปลี่ยนแปลงครั้งใหญ่ครั้งแรกของสังคมรถยนต์ของจีนใช้เวลามากกว่าสิบปี ใน "นโยบายอุตสาหกรรมอุตสาหกรรมยานยนต์" ที่ออกเมื่อปี พ.ศ. 2537 ประเด็นที่สะดุดตาที่สุดคือ "ค่อยๆ เปลี่ยนโครงสร้างการบริโภคของกองทุนสาธารณะเพื่อซื้อและใช้รถยนต์ ซึ่งส่วนใหญ่เป็นหน่วยงานบริหาร กลุ่ม สถาบัน และรัฐวิสาหกิจ" ตั้งแต่การซื้อรถยนต์ด้วยกองทุนสาธารณะเป็นหลักไปจนถึงรถยนต์ที่ค่อยๆ เข้าสู่ครัวเรือน การเปลี่ยนแปลงครั้งใหญ่ครั้งแรกได้นำมาซึ่งการปรับปรุงคุณภาพชีวิตของผู้คนอย่างมาก แรงผลักดันหลักสำหรับการเปลี่ยนแปลงนี้คือนโยบายอุตสาหกรรมที่ชัดเจน การเติบโตทางเศรษฐกิจของประเทศอย่างยั่งยืนและรวดเร็ว และอุตสาหกรรมยานยนต์ในประเทศที่กำลังเติบโต อย่างไรก็ตาม เมื่อเราก้าวเข้าสู่สังคมยานยนต์อย่างรวดเร็วซึ่งครอบงำโดยรถยนต์ส่วนตัว เรากำลังเผชิญกับสถานการณ์ใหม่และการทดสอบใหม่: รัฐบาลกลางเน้นย้ำถึงการจัดตั้งและการดำเนินการตามมุมมองทางวิทยาศาสตร์เกี่ยวกับการพัฒนา และกำหนดให้องค์กรในประเทศต้องปรับปรุงขีดความสามารถด้านนวัตกรรมที่เป็นอิสระ ในช่วง "การประชุมสองสมัย" ปีนี้ รัฐบาลกลางยังได้เสนอจิตวิญญาณของการสร้างสังคมที่มีความสามัคคีและสังคมที่มุ่งเน้นการอนุรักษ์ ในเวลาเดียวกัน สังคมรถยนต์ในประเทศของฉันก็เผชิญกับปัจจัยที่ไม่เอื้ออำนวยหลายประการ เช่น การขาดแคลนพลังงาน ราคาน้ำมันที่สูงขึ้น และทรัพยากรที่ดินมีจำกัด เมื่อเทียบกับภูมิหลังนี้ การดำเนินการเปลี่ยนแปลงครั้งใหญ่ครั้งที่สองจึงเป็นเรื่องเร่งด่วน
ผลการแบ่งส่วนคำ ChineseParse:
การเปลี่ยนแปลงครั้งใหญ่ครั้งแรกของสังคมรถยนต์ของจีนใช้เวลามากกว่าสิบปี ใน "นโยบายอุตสาหกรรมอุตสาหกรรมยานยนต์" ที่ออกเมื่อปี พ.ศ. 2537 ประเด็นที่สะดุดตาที่สุดคือ "ค่อยๆ เปลี่ยนโครงสร้างการบริโภคของกองทุนสาธารณะเพื่อซื้อและใช้รถยนต์ ซึ่งส่วนใหญ่เป็นหน่วยงานธุรการ กลุ่ม สถาบัน และรัฐวิสาหกิจ" ตั้งแต่การซื้อรถยนต์ด้วยกองทุนสาธารณะเป็นหลักไปจนถึงรถยนต์ที่ค่อยๆ เข้าสู่ครัวเรือน การเปลี่ยนแปลงครั้งใหญ่ครั้งแรกได้นำมาซึ่งการปรับปรุงคุณภาพชีวิตของผู้คนอย่างมาก แรงผลักดันหลักสำหรับการเปลี่ยนแปลงนี้คือนโยบายอุตสาหกรรมที่ชัดเจน การเติบโตทางเศรษฐกิจของประเทศอย่างยั่งยืนและรวดเร็ว และอุตสาหกรรมยานยนต์ในประเทศที่กำลังเติบโต อย่างไรก็ตาม เมื่อเราก้าวเข้าสู่สังคมยานยนต์อย่างรวดเร็วซึ่งครอบงำโดยรถยนต์ส่วนตัว เรากำลังเผชิญกับสถานการณ์ใหม่และการทดสอบใหม่: รัฐบาลกลางเน้นย้ำถึงการจัดตั้งและการดำเนินการตามมุมมองทางวิทยาศาสตร์เกี่ยวกับการพัฒนา และกำหนดให้องค์กรในประเทศต้องปรับปรุงขีดความสามารถด้านนวัตกรรมที่เป็นอิสระ ในช่วง "การประชุมสองสมัย" ปีนี้ รัฐบาลกลางยังได้เสนอจิตวิญญาณของการสร้างสังคมที่มีความสามัคคีและสังคมที่มุ่งเน้นการอนุรักษ์ ในเวลาเดียวกัน สังคมรถยนต์ในประเทศของฉันก็เผชิญกับปัจจัยที่ไม่เอื้ออำนวยหลายประการ เช่น การขาดแคลนพลังงาน ราคาน้ำมันที่สูงขึ้น และทรัพยากรที่ดินมีจำกัด เมื่อเทียบกับภูมิหลังนี้ การดำเนินการเปลี่ยนแปลงครั้งใหญ่ครั้งที่สองจึงเป็นเรื่องเร่งด่วน
จะเห็นได้ว่า ChineseParse ไม่สามารถประมวลผลคำเช่น "ครั้งแรก" และ "ครั้งที่สอง" อย่างชาญฉลาด และไม่มีความสามารถในการจดจำตัวเลข แต่เอฟเฟกต์การแบ่งส่วนคำพื้นฐานยังคงใช้ได้
(หลังจากทั้งหมด ฉันจบโปรแกรมในนั้น) 3ชม.จะเทียบกับที่คนอื่นสะสมมาสิบปีได้ยังไง?)
การทดสอบประสิทธิภาพ (Centrino 1.5M): 677,000 คำต่อวินาที
การเพิ่มประสิทธิภาพโปรแกรมควรสูงกว่านี้
5. สรุป
สิ่งที่ควรทำเพิ่มเติม:
1. สามารถจดจำภาษาต่างประเทศและตัวเลขง่ายๆ ได้
2. มีสติปัญญาที่เรียบง่าย
3. ขยายคำศัพท์
แล้วมันจะมีคุณค่าในทางปฏิบัติ
หมายเหตุ: สิ่งที่ฉันเขียนในช่วงไม่กี่เดือนที่ผ่านมาส่วนใหญ่เป็นโปรแกรมขนาดเล็กที่ประมวลผลภาษาจีนอย่างง่าย เช่น การแปลงแบบดั้งเดิมและประยุกต์ การเรียงพิมพ์อัตโนมัติ การแทนที่แบทช์ การแบ่งส่วนคำภาษาจีน หาก ฉันมีเวลา ฉันจะรวบรวมโปรแกรมเหล่านี้และรวมไว้ในเครื่องมือประมวลผลภาษาจีนที่ใช้งานได้จริง ฉันไม่รู้ว่าคุณต้องการอะไรอีก ดังนั้นฉันจึงรู้สึกอิสระที่จะบอกคุณ