开发日记2021-14周

2021-3-29

昨天终于把解分部的功能做完了,但是最后发现竟然比原文件少了一条数据。
看长度,加输出,把标识数显示为笔画,看起来都是正常按原来思路来的,但是总是差一条。。。
后来我终于想到把原文件的关键字放进处理后的数据里检查看看有没有,终于发现了一条数据,这条数据似乎是嵌套定义,但实际只是部件和基本组件重名而已。

啊!数据耦合好严重!
想加一个父子部件重名的判别条件,似乎和我现在的递归冲突。
改了一下合并方法的参数列表。看来我离终极大佬差了不少距离,没有面向未来编程。

这么点个小问题,让我搞了一个多将近两个小时,效率太低了。

字的笔画列表算出来了,但是保留gb字符集得到的字数却有点问题,少了几百字。
尝试检查gb中不在处理结果中的字条,原来少的部分散落在组件中,看来还需要把组件的处理信息也放到最终的推导结果中。
加上组件信息后再过滤非GB字符就对了。
处理后的结果字加上笔画竟然达到了78692行,397KB,有点担心运行效率的问题了。
非常担心!
读取文件用时0.003988981246948242,而整个加载时间却达到了5.501307010650635,说明反序列化效率不高。
先写吧,写完再说,加载到内存里就快了。

推导部件和字的功能应该算是完成了,提交上,想想明天干啥吧。
转化提取应该是还差最后一个环节,把各方面的信息提取特征出来
每个字要有什么字段的模型现在已经做成一个类,
需要再写一个子类,作为初始化的默认值。
父类类内就需要描述一点功能了,需要加载权值文件到内存中,获取权值信息,如果权值文件没有则需要生成。
生成权值文件,需要用到字和部件的简化信息,需要调用Compound相关功能,得到简化信息后,利用子类的默认值进行初始化,生成权值列表,列表生成后保存到文件。
至此,提取特征的环节大概差不多了,转化提取模块也算完成。

2021-3-30

昨晚竟然看到一个开发输入法的日记,至今开发了七个月了,好像也还是有一些问题,实在不咋简单

学习一下,就按周或者按月放一篇吧,不然都太碎了

类中定义的变量,类似静态变量,所有实例化的对象共用一个地址
python 的int大小竟然是400字节,但是具体的整数对象的话就就没有那么大,对象大小随着数字增大而增大。

那会想着改用整数的不同位来区分各笔画,用在计算曼哈顿距离的笔画统计值上,想用一个类似掩码计算的方式。
这种思路大概只能用于区分有没有某笔画,曼哈顿距离还是要老老实实用字典或者数组

试一下掩码,要看某字合不合要求,首先要看字有没有缺少当前输入的所有笔画种类
要求输入有,字没有的位,即将输入作为掩码,字代入

a=110 m=011() 目标:001
 a&m=010
 a^m=101
 a|m=111
  ~a=001
  ~m=100
a&~m=100
a^~m=010
a|~m=110(将此取反)
~a&m=001(符合要求)

从上推演结果可以看出,将字的缺失笔画置1,包含笔画置0,和输入码相与不为0即说明当前字不满足输入要求,应该从候选结果中剔除。
所以,在字初始化时,要将其缺失笔画置1,包含笔画置0

凭什么python的int的长度是那个样子?上网搜索的结果不尽人意,链式引用很容易断链找不到信息源出来。
python int支持动态扩展,已知的单个元素存储15位二进制数(64位系统30位),
已知int内部定义:
struct _longobject {
PyObject_VAR_HEAD
digit ob_digit[1];
};
数字0是PyObject_VAR_HEAD长度24,往后的若干数字占用一个元素,4个字节(系统64位),以此可以解释一二

利用二进制位不同表示笔画的逻辑是正常的,控制台没有问题,但是文件存储好像不太行。不是文件存储的问题,是原来改 存文件操作的代码的时候忘了写返回值。

老是用for写输出,寻思弄个utils包,结果看了几个源码,一个注释都没有,让我想骂人。
算了还是自己写吧

映射映射,是个需要好好考虑的问题。

2021-3-31

昨晚好像又梦到代码了。

每次调试都要花费5、6秒的时间来等待加载文件序列化,有点浪费时间
写个输出工具都有小插曲,忘了可迭代对象嵌套定义的相关问题

还是要先动手啊,先把核心功能不管啥先写出来。

突然感觉把笔画标识数改成位标识可能会多占空间,记下偏移位数运行时计算也可,但是预存储却可以节约一定的计算时间,看了一下其中最大的笔划标识数在内存中的大小,28,并无二般,可以放心用了。

调下输出格式。
掩码区分笔画分类(横、横折、横勾等类)是否有,比如字中有横折,输入的是横,可以将几个笔画做或运算,然后和,,这里需要论证一下

a = 0b1011
m = 0b1100
c = 0b0110  # 同类的两个笔画相或结果,中间两位(2横勾,3横)表示同类笔画,3可代2
目标(第1位第4位忽略):
    01-10 : 00
    10-10 : 00
    10-01 : 01
    若将待处理数位的强特征(不可代换)位演化到弱特征位(可代换他位),即新目标为:
    11-10 : 00
    10-10 : 00
    10-01 : 01
    利用原来的~a&m,可得目标结果
    特征位演化过程:
    利用同类笔画相与结果,
    和待处理数据相与,
        不为零,则将该同类笔画的 低特征位 置1
   
    综上,提取转换时作预处理,
    将每一笔画相与,得到字的精确特征,
    然后利用同类规则计算各类笔画包含状态,
    将每类中低特征位置1(当前字包含该类笔画)或0(不含该类)
    再补充一点,最后,将特征位取反(方便输入时直接和掩码做与运算)

感觉这里好像是优化阶段的问题,但是在按键消息映射的模糊处理中,这一点似乎又绕不开。让精密的计算机做模糊的事,计算机似乎不太好受,人也不好受。
同类的组织建立,弱特征根不太好确定,分类尤其不好组织。
就用二元组吧,记录强特征到弱特征的路径。

一 14
横: 1
横折: 512
横折弯钩: 65536
横折折: 1048576
横折弯
横折折折: 524288
横折折折钩: 131072
横折折撇: 2097152
横折提: 134217728
横折钩: 8
横撇: 8192
横撇弯钩: 268435456
横斜钩: 33554432
横钩: 262144
丨9
竖: 64
竖弯: 67108864
竖弯钩: 4
竖折: 2048
竖折折: 536870912
竖折折钩: 256
竖折撇: 1024
竖提: 16384
竖钩: 2
丿3
撇: 16
撇折: 4096
撇点: 4194304
丶5
弯钩: 16777216
捺: 32
提: 32768
斜钩: 8388608
点: 128

怎么就这么费劲的呢?!

2021-4-1

先前学习的时候做的笔记确实是很好,虽然不很详细,但足够回忆知识点。
以后不管是学习还是搜索问题,就尽量都记录下来吧,按照自己理解整理一遍,详细的原文附上链接。也好方便回忆,查漏补缺。

脑子似乎有些疲,先写写论文吧,老师还让我再详细写写机器人的说明文档,先写文档换换脑子,有好点子随时记录下吧。

这么个简单的文档弄了一天没整明白。。下午脑子还昏昏欲睡。

记一下查论文的浏览器标签内容吧,智慧校园,万方、知网、,,,算了,还是新建个标签文件夹,把待看的网页扔进去吧先。

2021-4-2

人有的时候实在是太坏了,我在免费用谷歌学术,却还要用验证码来反向训练谷歌的ai。其实算是爱玩吧,人嘛,总不像机器死板,不知道它的ai现在还好吗

自动拆分群里的大佬说,原来上学,项目开题需要可行性报告,我似乎没接触过。。

2021-4-3

要养成及时提交的习惯。这堆了好多了。。

其实还是是我太菜,看看人家的论文里明明写着那么多参考文献呢。

笔画数量和按键数量不对等,这一点,还是要利用特征码来解决吗?
将同一按键对应的笔画化作一类,选择其中一个笔画作为按键映射码,将此类笔画按照先前预想的同类笔画的处理方式处理。

现在又开始担心,如果老师要问键位相关速度的当量怎么办,或许不会问,没这么为难?

【键位相关速度当量的研究】一堆符号,怎样排列,可以让每个符号前后都出现一遍其他符号?

2021-4-4

转化提取应该是还差最后一个环节,把各方面的信息提取特征出来

  1. 每个字要有什么字段的模型现在已经做成一个类,
  2. 需要再写一个子类,作为初始化的默认值。
  3. 父类类内就需要描述一点功能了,需要加载权值文件到内存中,获取权值信息,如果权值文件没有则需要生成。

生成权值文件,

  1. 需要用到字和部件的简化信息,需要调用Compound相关功能,
  2. 得到简化信息后,利用子类的默认值进行初始化,
  3. 计算特征码,生成权值列表,
  4. 列表生成后保存到文件。

特征码计算,

  1. 利用笔画列表,将每一笔画相与,得到字的精确特征,
  2. 然后利用同类规则计算各类笔画包含状态,
  3. 将每类中低特征位置1(当前字包含该类笔画)或0(不含该类)
  4. 最后,将特征位取反(方便输入时直接和掩码做与运算)

同类规则,文件内定义强特征到弱特征的字典映射

  • 预划分的同类笔画,定义强特征笔画和弱特征笔画(二元组)
  • 键划同类笔画,按键划定义按键内映射笔画,将键划内其他笔画以此为弱特征,按上条方式处理

至此,提取特征的环节大概差不多了,转化提取模块也算完成。

那天寻思看看机器人的文档,弄了弄visio,提示激活office,开了激活工具搞没了idea,只记得当时提示让关闭idea,但是竟然给删了,我很不可思议感觉

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值