utils.py 565 B

123456789101112131415161718192021
  1. from xpinyin import Pinyin
  2. def generate_english_name(chinese_name: str) -> str:
  3. """
  4. Generate english name from chinese name.
  5. Rule: Surname initial + First name full pinyin.
  6. Example: 张三 -> zsan
  7. """
  8. if not chinese_name:
  9. return ""
  10. p = Pinyin()
  11. # Assuming first char is surname
  12. surname = chinese_name[0]
  13. firstname = chinese_name[1:]
  14. surname_pinyin = p.get_pinyin(surname, "").lower()
  15. firstname_initial = p.get_initials(firstname, "").lower()
  16. return f"{surname_pinyin}{firstname_initial}"