阿白 on Nostr: You 定义一个函数,检查字符串中是否包含中文字符 def ...
You
定义一个函数,检查字符串中是否包含中文字符
def contains_chinese(s): for ch in s: if u’\u4e00’ <= ch <= u’\u9fff’: return True return False 这个判断中文的函数有缺陷,会把日文字符判断为中文,如何优化
AI
要优化这个函数以排除日文字符,您可以使用unicodedata库来区分中文和日文字符。这是一个修改过的函数:
import unicodedata
def contains_chinese(s):
for ch in s:
if u’\u4e00’ <= ch <= u’\u9fff’ and ‘CJK UNIFIED IDEOGRAPH’ in unicodedata.name(ch):
return True
return False
这个函数仍然会检查字符是否在中文字符范围内,但它还会使用unicodedata.name()来确保字符是中文字符(即名称包含“CJK UNIFIED IDEOGRAPH”)。这样,如果字符是日文字符,它就不会被误判为中文字符。
我先按这个算法用已经筛出的id(1200+)测试一下
Published at
2023-05-05 11:36:14Event JSON
{
"id": "772ee436cf13a0f43da525d80a9004d43b1ae04048b88e6bcee7f2098b5606b3",
"pubkey": "c62408c9cbfddcc8d0e37a34647cd7c50482a4b0c9b5131bfa5717a4fe994f2b",
"created_at": 1683286574,
"kind": 1,
"tags": [
[
"e",
"b7945f6c6fc7292020c1c11eaaa6acb11fc8d9137becccfe1fd81722ddce5ac0"
],
[
"e",
"9710913e1c1623d2d36f5b78ba704b0c5b9e1149b8f0ab1e6c3b5282392d29de"
],
[
"p",
"98dfabd4629af235864af88289675b32cb7cae56a2533f1e1c2168aa66009bc6"
],
[
"p",
"db11b32009d914dd76bd904b8a636627d1d9043f2a4f9ecaf6aaf85d05c5f7af"
],
[
"p",
"d34110060782337c8864ff76321a821f2dbbcfb0bb33864b1cc48712abd84a80"
]
],
"content": "You\n定义一个函数,检查字符串中是否包含中文字符\ndef contains_chinese(s): for ch in s: if u’\\u4e00’ \u003c= ch \u003c= u’\\u9fff’: return True return False 这个判断中文的函数有缺陷,会把日文字符判断为中文,如何优化\n\nAI\n要优化这个函数以排除日文字符,您可以使用unicodedata库来区分中文和日文字符。这是一个修改过的函数:\n\nimport unicodedata\n\ndef contains_chinese(s):\nfor ch in s:\nif u’\\u4e00’ \u003c= ch \u003c= u’\\u9fff’ and ‘CJK UNIFIED IDEOGRAPH’ in unicodedata.name(ch):\nreturn True\nreturn False\n这个函数仍然会检查字符是否在中文字符范围内,但它还会使用unicodedata.name()来确保字符是中文字符(即名称包含“CJK UNIFIED IDEOGRAPH”)。这样,如果字符是日文字符,它就不会被误判为中文字符。\n\n我先按这个算法用已经筛出的id(1200+)测试一下 ",
"sig": "f1b58c6c6e252de2e85a008f26b76eda97cecf4d51f8bb3071082bed41f111e5fa9d2f6050766d00c15d73801be2d6a9cc631d3de0a5b08ae6f6d9d611ab3edd"
}