New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

术语词典API项目 #85

Open
nobodxbodon opened this Issue Aug 24, 2018 · 2 comments

Comments

2 participants
@nobodxbodon
Member

nobodxbodon commented Aug 24, 2018

源于: #54 (comment)

以Web API为演示平台, 积累术语词典数据. 在数据基本稳定后, 根据未来需求支持多种形式的API(针对不同语言等). 想到的功能有:

  • 输入英文术语, 返回对应的中文术语(可能在不同语境下有多个)
  • 输入中文术语, 返回相关的英文术语
  • 输入中(英)文关键词, 返回相关的中(英)文术语

原型代码库. 还需进一步完善API设计(之前的json草图).

在积累术语词条方面, 之前提过的几种可能的数据来源. 有遗漏请补充:

@nobodxbodon

This comment has been minimized.

Member

nobodxbodon commented Aug 26, 2018

术语有几种:

  • 代码命名(类/方法/变量)中的单词. 多数应与编程语言无关(比如model/view/controller), 但不排除有少数局限于特定编程语言/框架.
  • 关键词(短语), 与编程语言相关.

考虑从商用相对较广泛, 命名风格相对稳定, 个人相对熟悉的语言开始着手(之前JDK中有过初步分析)

@nobodxbodon

This comment has been minimized.

Member

nobodxbodon commented Aug 30, 2018

尝试翻译了词频前31位的(附在最后), 发现三方面问题, 前两个感觉与自然语言翻译问题(主要是上下文相关)想通. 词频较少的词反而这类问题不突出.

  • 介词/助词, 如 to of, 需联系上下文.
    比如: Period.plus#amountToAdd, Long#toBinaryString, 很难找到一个对应中文适用于所有情况. amountToAdd可译为增(加的)量, 而toBinaryString可译为转换为二进制字符串.
    of略微简单些, 如Duration#ofMillis, String#copyValueOf, Book#getNumberOfPages, 多数表示xx的yy关系, 但是仍存在倒装/省略等情况需要额外(在最简单的替换之外)处理

  • 近义词, 感觉最好区分对应中文, 但需要更细研究它们在原API中的区别

    • remove (68处) delete (13处)
      Container#removeAll, Vector#removeElementAt, 相比File#deleteOnExit, Observable#deleteObservers, 尚未发现明显的区别, 但明显remove是多数
    • add (95) append (28)
      Component#addMouseWheelListener, Time.plusSeconds#secondstoAdd, 相比DateTimeFormatterBuilder#appendOffset, DateTimeFormatterBuilder#appendPattern, 似乎在"添加/追加"方面没有太大区别, 不过add有额外的"加法"之意. 这也需要根据上下文进行相应处理.
  • 难以找到对应中文的:
    Bean, 考虑不翻译

附表: 前31个高频词

get
set
is
exception 例外
to  
key
type 类型
name 名称
listener 监听器
class
method 方法
of  
time 时间
event 事件
file 文件
new
add 添加
stream
default 默认
count 计数
focus 聚焦
value
input 输入
date 日期
long 长整型
size 大小
thread 线程
bean  
path 路径
parameter 参数
remove 删除

@absente absente added this to the 2018戊戌 milestone Sep 2, 2018

@nobodxbodon nobodxbodon referenced this issue Sep 7, 2018

Open

"中文编程"知乎专栏开通! #48

11 of 22 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment