簡體   English   中英

用特殊字符標記UTF-8中的單詞中的句子

[英]Tokenize sentence in word in UTF-8 with special characters

我正在嘗試標記Javascript(node.js)中句子中的單詞,刪除非單詞字符(點,逗號,句號,問號等),同時考慮到UTF-8中每個現有的字母(英語,拉丁文,希臘文,西里爾文,日文等)和數字,這意味着我需要一種方法來知道字符是單詞的一部分還是符號。 例如:

españa.es 4*5 Rußland Citroën, 東京 iphone-pro5

應該返回一個數組:

[españa, es, 4, 5, Rußland, Citroën, 東京, iphone, pro5]

我正在使用以下正則表達式:

[0-9A-Za-zªº\µ\À-\Ö\Ø-\ö\ø-\ʯ\ʰ-\ˁ\Ͱ-\ʹ\Ͷ-\ͷ\ͺ-\ͽ\Ά\Έ-\Ί\Ό\Ύ-\Ρ\Σ-\Ͽ\Ѐ-\ҁ\Ҋ-\ԣ]+

0-9A-Za-z(數字和英文字母)

(º(常規指標)

\\ u00B5(微符號)

\\ u00C0- \\ u00D6 \\ u00D8- \\ u00F6 \\ u00F8- \\ u02AF(非英語拉丁字母)

\\ u02B0- \\ u02C1(修飾詞)

\\ u0370- \\ u0374 \\ u0376- \\ u0377 \\ u037A- \\ u037D \\ u0386 \\ u0388- \\ u038A \\ u038C \\ u038E- \\ u03A1 \\ u03A3- \\ u03FF(希臘字母和科普特字母)

\\ u0400- \\ u0481 \\ u048A- \\ u0523(西里爾字母)

還有其他更簡單或更完整的方法來拆分文本中的單詞嗎?

使用XRegExp很容易:

 var s = "españa.es 4*5 Rußland Citroën, 東京 iphone-pro5"; var r = XRegExp("[\\\\pL\\\\pN]+", "g"); var results = XRegExp.match(s, r); console.log(results); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script> 

[\\\\pL\\\\pN]+正則表達式模式匹配一​​個或多個Unicode字母( \\pL )或數字( \\pN )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM