1 分•作者: delichon•8 个月前
返回首页
最新
1 分•作者: aalhijawi•8 个月前
1 分•作者: shivajikobardan•8 个月前
我想深入学习继承、抽象和封装。同样,我也想了解接口和抽象类的必要性,并学习如何设计对象。
我正在使用 Java。
我发现了一个看起来很棒的课程,但它不是免费的(就像世界上所有美好的事物一样)。
https://course.ccs.neu.edu/cs3500/
该课程推荐了《Effective Java》、《设计模式:可复用面向对象软件的基础》(GoF)、《Head First 设计模式》等书籍。但其中大部分书籍更像是风格指南。
我目前正处于一个不理解如何设计面向对象程序的阶段。我一直在疯狂地把所有代码都写在 Main 类里。
我需要一个详细的课程或书籍来学习这些,因为我是一个学习很慢的人。而且我这样做是为了乐趣,所以没有时间限制。
虽然有像 Grady Booch 和 Craig Larman 这样的书,但在我看来它们有点枯燥。但我可能会改变主意。
2 分•作者: tosh•8 个月前
4 分•作者: freediver•8 个月前
3 分•作者: imad-101•8 个月前
2 分•作者: DejavuMoe•8 个月前
2 分•作者: boris_m•8 个月前
38 分•作者: kekqqq•8 个月前
2 分•作者: Tananon•8 个月前
嘿,HN!我最近开源了 Pyversity,这是一个用于多样化检索结果的轻量级库。大多数检索系统只针对相关性进行优化,这可能导致 top-k 结果看起来几乎相同。Pyversity 可以高效地对结果进行重新排序,以平衡相关性和多样性,呈现那些仍然相关但冗余度较低的条目。这有助于改进检索、推荐和 RAG 管道,而不会增加延迟或复杂性。
主要特点:
- 统一 API:一个函数 (diversify) 支持多种著名的策略:MMR、MSD、DPP 和 COVER(未来将支持更多)
- 轻量级:唯一的依赖是 NumPy,保持软件包小巧且易于安装
- 快速:所有支持策略的高效实现;在毫秒内多样化结果
目前,使用交叉编码器进行重新排序非常流行,但也很昂贵。根据我的经验,您通常可以使用更简单、更快速的方法来改进检索结果,例如此软件包中实现的方法。这有助于检索、推荐和 RAG 系统呈现更丰富、信息更全面的结果,确保每个新条目都添加新信息。
代码和文档:github.com/pringled/pyversity
如果您有任何反馈或对其他要支持的多样化策略有建议,请告诉我!
1 分•作者: crowdhailer•8 个月前
1 分•作者: birdculture•8 个月前
1 分•作者: bookofjoe•8 个月前
1 分•作者: FromTheArchives•8 个月前
2 分•作者: geox•8 个月前
1 分•作者: saligne•8 个月前
3 分•作者: nreece•8 个月前
1 分•作者: tetris11•8 个月前
1 分•作者: FromTheArchives•8 个月前
2 分•作者: wh313•8 个月前