Skip to content
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

feat: 初版随机小作文 #32

Closed
wants to merge 1 commit into from
Closed

feat: 初版随机小作文 #32

wants to merge 1 commit into from

Conversation

Shimada666
Copy link
Contributor

最近太忙啦 鸽了很久 不好意思

初版功能,文档还没加,先提个 pr

一个想法:单独靠算法排除掉干扰选项是很难做完善的,一般来说,au们看到小作文才会去查重。如果在查重时,将匹配的小作文查重次数 +1,之后小作文就从如 查重次数 > 10 的小作文里随机挑选,这样可以保证小作文是比较准确的,而不是骂战留言之类的,性能也是非常快的

延伸:统计了查重次数后,枝江作文展也可以以此方法筛选作文,现有作文展有一些干扰,比如晚晚请假等不是作文的也被展示出来。强烈建议增加查重次数统计,帮助筛选优秀小作文

@stream2000
Copy link
Member

感谢PR!最近我也有点小忙😢 晚上或者明天一定会看看的!

@stream2000 stream2000 linked an issue Aug 29, 2021 that may be closed by this pull request
@stream2000
Copy link
Member

感谢贡献捏😘代码看了一遍没什么问题,等前端那边对一下需求,看一下怎么适配就可以合入啦。

@Shimada666
Copy link
Contributor Author

感谢贡献捏😘代码看了一遍没什么问题,等前端那边对一下需求,看一下怎么适配就可以合入啦。

好的捏。其实感觉这段代码质量不太行,因为写的有点赶也不够完善,不过接口不会变,前端可以先适配嗷,我有空再完善下😘。如果你们之后前端有需要的话也可以艾特我嗷,我前端主要写vue2/vue3捏,有空的时候也可以帮忙开发一下🥰

Copy link
Member

@ch3cknull ch3cknull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢贡献!

我目前的疑问如下

感觉单从查重次数判别是否是小作文可能不算太巧妙?(有刷量的问题)
所以判断是否小作文可以先不做的

另外,按目前的PR,前端的请求地址应当是下面这样?

GET /v1/api/loveletter/random?limit=10&likeNum=50&length=30&role=AVA

Comment on lines +10 to +15
public enum ASoulRoleEnum {
AVA(0, "向晚"),
BELLA(1, "贝拉"),
CAROL(2, "珈乐"),
DIANA(3, "嘉然"),
EILEEN(4, "乃琳");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

前端传枚举的方式是否要修改成传UID?目前 ranking 接口前端是传的 uid数组

可以参考 ranking 的 uid 的 filter?

https://github.com/ASoulCnki/ASoulCnkiBackend/blob/master/src/main/java/asia/asoulcnki/api/common/duplicationcheck/filters/UserIdInFilter.java

Copy link
Member

@ch3cknull ch3cknull Aug 29, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

目前ranking接口是这样传值的,或许可以参考一下?

GET /v1/api/ranking/?pageSize=10&pageNum=1&timeRangeMode=1&sortMode=0&ids=672346917,672353429&keywords=关键词1,关键词2

上述参数都要经过encodeURIComponent做编码

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

传枚举的方式应该都行啦,我个人比较喜欢传具体的内容,这样比较明确,如果前端有需要的话我可以改一下改为传枚举值捏

// 附加条件,如向晚的小作文里经常有 "向晚不是","阿八" 等关键字,一般是撕逼,要排除。如珈乐也有请假等大量干扰选项
// TODO: 优化一下排除算法,但这需要更多数据,同时要考虑到性能
// TODO: 一个想法:单独靠算法排除掉干扰选项是很难做完善的,一般来说,au们看到小作文才会去查重。如果在查重时,
// 将匹配的小作文查重次数 +1,之后小作文就从如 查重次数 > 10 的小作文里随机挑选,这样可以保证小作文是比较准确的,而不是骂战留言之类的
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 需要在 reply表 里新增一列用于存放查重次数?

  2. 可能存在有人反复查重某一篇非小作文评论来提升权重的情况?
    如何计算有效的查重次数好像比较困难

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 需要在 reply表 里新增一列用于存放查重次数?
  2. 可能存在有人反复查重某一篇非小作文评论来提升权重的情况?
    如何计算有效的查重次数好像比较困难

查重次数和被引(偷)次数我觉得都是有必要留存的维度。以目前bb空间的量,也许要辅以redis定时刷数据到db,单凭数据库我不知道扛不扛得住。针对(2)的情况,我在下面那个单独的回复里提啦,可以看一下捏

@Shimada666
Copy link
Contributor Author

Shimada666 commented Aug 29, 2021

感谢贡献!

我目前的疑问如下

感觉单从查重次数判别是否是小作文可能不算太巧妙?(有刷量的问题)
所以判断是否小作文可以先不做的

另外,按目前的PR,前端的请求地址应当是下面这样?

GET /v1/api/loveletter/random?limit=10&likeNum=50&length=30&role=AVA

是滴,文档还没来得及写,实际上每个参数好像都是有默认值的,可以都不传。
查重次数判别是否小作文我感觉是相对好的一个办法啦,我感觉查重次数是很好的一个维度。除此之外还可以增加被偷次数也作为一个维度,辅以点赞、转发等维度,做一个加权平均来判断小作文的质量(我感觉依照 #33 的想法,甚至可以以此设计一套质量分数的算法)。
刷量的问题我觉得可以暂时先不考虑,因为恶意利用这个规则也不是很容易的,刷量的成本不低,而且这么无聊的au应该还是比较少的捏

@ch3cknull
Copy link
Member

感谢贡献!
我目前的疑问如下
感觉单从查重次数判别是否是小作文可能不算太巧妙?(有刷量的问题)
所以判断是否小作文可以先不做的
另外,按目前的PR,前端的请求地址应当是下面这样?

GET /v1/api/loveletter/random?limit=10&likeNum=50&length=30&role=AVA

是滴,文档还没来得及写,实际上每个参数好像都是有默认值的,可以都不传。
查重次数判别是否小作文我感觉是相对好的一个办法啦,我感觉查重次数是很好的一个维度。除此之外还可以增加被偷次数也作为一个维度,辅以点赞、转发等维度,做一个加权平均来判断小作文的质量(我感觉依照 #33 的想法,甚至可以以此设计一套质量分数的算法)。
刷量的问题我觉得可以暂时先不考虑,因为恶意利用这个规则也不是很容易的,刷量的成本不低,而且这么无聊的au应该还是比较少的捏

这部分我没有问题了,之后会尝试做一下前端的适配

目前工作主要是和已有的作文展的筛选组件区分开

@Shimada666
Copy link
Contributor Author

感谢贡献!
我目前的疑问如下
感觉单从查重次数判别是否是小作文可能不算太巧妙?(有刷量的问题)
所以判断是否小作文可以先不做的
另外,按目前的PR,前端的请求地址应当是下面这样?

GET /v1/api/loveletter/random?limit=10&likeNum=50&length=30&role=AVA

是滴,文档还没来得及写,实际上每个参数好像都是有默认值的,可以都不传。
查重次数判别是否小作文我感觉是相对好的一个办法啦,我感觉查重次数是很好的一个维度。除此之外还可以增加被偷次数也作为一个维度,辅以点赞、转发等维度,做一个加权平均来判断小作文的质量(我感觉依照 #33 的想法,甚至可以以此设计一套质量分数的算法)。
刷量的问题我觉得可以暂时先不考虑,因为恶意利用这个规则也不是很容易的,刷量的成本不低,而且这么无聊的au应该还是比较少的捏

这部分我没有问题了,之后会尝试做一下前端的适配

目前工作主要是和已有的作文展的筛选组件区分开

好滴 辛苦😘

@Shimada666 Shimada666 closed this by deleting the head repository Mar 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

增加随机小作文
3 participants