博客

  • 2.八大句子成分

    在此之前我们已经明白了语法需要搞定个部分

    我们接下来简单的了解一下句子。

    什么是 句子成分 ?

    其实就是组成句子的各个部分。

    句子的成分总够有8个,

    接下里就是通过一段三角恋来让我们明白这些句子成分。

    首先我们的主角登场了!

    若是在句子中,句子中的 主语 就相当于是主角。我们就写一句「Zhanhuwei」(展护卫)为 主语 的句子吧!

    作出的这个「抱」的动作就是 谓语 。 谓语 就是主语发出的动作。

    完善一下……

    这个「妹纸」,就是 宾语 ;在句子中, 宾语 是主语发出动作的作用对象。

    这就是一个简单句。

    接下来我们给主角画一个妆。

    在戴上装饰物

    化妆,铃铛。这些都是修饰主角的。在句子中修饰 主语 的,我们称之为 定语。

    在给一个场景就完美了。

    一个故事,除了需要把地点讲清楚,时间也是比不可少的。

    时间、地点,这些表示这部剧的背景,也就是语法中的 状语 。

    状语是干啥的?作修饰,说明地点,时间,原因,结果,条件,方式,方向,程度等。

    虽然是细枝末节,但是依然重要。

    接下来就是不太重要的语法,但是非常有意思的故事了。

    这里的 alone ,就是 宾语 「Zhanhuwei」(展护卫)的 补语 ,对 宾语 「Zhanhuwei」(展护卫)的补充说明,使句子更完整。

    补语 分为 主语补足语 和 宾语补足语 。主语 的 补语,就是放在 主语 后面的 补足语 ,像我们常说的 表语 ,也是 主语的补语 。

    高富帅,是对 the other man 进行补充说明。主系表,也可以说成 主谓补 。

    这就说到我们讲的 同位语 了,同位语 就是两个词语,都是在说同一个人。

    接下来就是比较官方的说法了。

  • 1.从词性开始

    让我们先来认识一下 句子 和 句子 的成分,

    主谓宾句型 -> I hit you.

    句子的成分可以拆解为,

    I -> 主

    hit -> 谓

    you. -> 宾

    那每一个句子成分的词性是什么呢?

    今天我们来说说十大词性。

    句子, 句子成分, 词性

    他们仨之间到底有啥不可见人的关系呢?

    单词相对于句子成分就像是,

    单词是句子成分最小的单位,而每一个单词都有词性。

    那十大词性,又是啥玩意呢?

    我们把他们拆成了3类

    我们先来看看非重点类的词性。

    根据英文定义,

    pronoun = pro(代替) + noun(名词)

    代名词的词。

    这些都是指代某个名词的词。

    数词 嘛,顾名思义「1,2,3,4,5」

    就是跟数字有关的单词。

    这个应该是最好理解的了,就是表示说话感情的词语。

    以上就是一些非重点的词性,接下来就是一些重点词性了。

    名词:名称的词性。

    是表示具体或者抽象事物/人物的词。

    动词是表示动作或者状态的词。

    形容词:形容名词的词。

    对名词有修饰限定的作用

    通常交代时间,地点,原因,程度等非核心信息。

    他可以修饰形容词,动词,副词以及句子。

    这四个实词还有几段狗血的关系。大致可以表现为,

    但是一个句子光有实词就太简单了,语法才不会这么简单呢!不信就去看看Rust。所以又出现了三大虚词来折磨我们。

    它可以和世界上顶级的科技公司一起出现,起限定作用。

    这是最难的介词。

    他出现在 名词 的前面,表示名词于其他词之间的关系。

    连词就是连接两个词语或者句子的词语,

    可以连接两个单词,

    也可以连接两个句子。

    所谓的 虚词 ,于 实词 恰恰相反,也就是不能单独作为句子成分的单词,他们需要跟实词一起才组成了句子成分。

    冠词 需要在 名词 前面; 介词 也需要和 名词 配合; 连词 同样也需要连接词语,短语或者句子。

    而然句子成分都有比较固定的词性所以我们可以得出一张表。

    虽然不敢保证完全相等,但是这样有助于理解语法体系的建立。

  • 3.一定要知道的5个句型

    语法这个玩意,总是看起来很 strong 。

    以至于,很多同学都被唬住了。

    所以我们应该从「娃娃」抓起。

    也就是英语句子,最原始的形态–5种简单句的基本句型

    所有的复杂从句、省略句等等都是在他们的基础上,或添油加醋、或偷工减料而成的。

    那他们又是打哪来的呢?

    要知道,一个完整的句子,就好比一台戏,至少需要,

    才能唱的起来,其中,不同的谓语,也就是不同的拿手好戏,又决定了,是否需要其他成员的加入。

    最自力更生的句型

    这个句型的拿手好戏,是一些独角戏。主语通常不带别人玩,比如,

    这种低难度动作,不需要他人配合,「主语」(he),自个儿也可以狗带。

    最祸害他人的句型

    这个句型的拿手好戏,则是一些对手戏。主语最喜欢带别人玩了,比如,

    例句中的「谓语动词」是(kill),杀,「主语」(he),得有个被杀的对象,才算完整。而这个对象,我们就叫它「宾语」。

    最会搞关系的句型

    如果说,有什么句型,看起来啥都没干,但仍然颇有人气的话,那一定是「主+谓+补」句型,也就是同学们熟悉的「主+系+表」。他的拿手好戏非常特殊,是个系动词,比如is(是),look(看起来是)等等,

    属于没什么大动作,但可以用来搞好关系的 谓语动词。它和谁搞好关系呢?自然是,最擅长搞气氛的 补语 们了。补语,说白了,就是一群托儿,擅长各种吹捧追杀。

    搞定了这3个句型,剩下2个就很好理解了。

    这俩句型没啥本质区别,都属于,不满足于只演对手戏,还想来点道具呀、托儿呀什么的。就拿这场戏来说吧。

    只说 lent me ,借我,是不完整的,还得有借我了什么东西,这个“东西”,就是第二个 宾语 。而到了这个句子里,

    只说 made me,让我,也是不完整的,总得让我怎么着了吧,因此,我们就得带上个 补语 ,来说 宾语me 怎么着了。这5个句型,同学们不用死记。每个句型的拿手好戏不一样,构造自然也跟着不一样。

  • 7.搞事的比较级

    最近很多人都喜欢上了比较,那我们这一次就用英语来搞事情!

    1. 造一个含有形容词的或者副词的句子。
    1. 再将句中形容词和副词变成比较级。
    1. 再加上比较的对象,想怼谁加谁。

    比较时,要遵循去同存异原则。

    简单的搞事都好处理。 按照去同存异的原则, 我们现在去看看 那些想搞个大新闻的同学。 我们搞事的时候就可以看准对象啦!

    搞错对象,可是要负责的!从属关系间的比较

    这里比较的是斩护卫的文章,所以,大家不能说,

    这里的 that 指代 article , 所以是包大人的文章和斩护卫比。 自己和自己比较

    跟自己比的时候, 时间不一样, 动词 was 不能省掉哟。

    句子之间的比较

    一看觉得没毛病, 但是有两层意思。

    到底是斩护卫爱你 比包大人爱你多, 还是, 斩护卫爱包大人比爱你多呢。 为了区分意思,所以我们只能说,

    不过有些词是自带搞事光环, perfect,superb,excellent,sublime 这些含义里带有“最”“极其”的单词, 不能有比较级和最高级, 不然真的要上天!

    好了,记住搞事三步曲和去同存异法则, 学会用英文搞事了么?

    我们的口号是!

  • 6.如何用介词in/on/at表示位置

    要搞明白介词,我们就先知道介词是什么?

    看起来十分的抽象,我们可以用中文举个例子。

    回想一下, 我们在学习中文的时候, 可没有死记硬背什么 介词 固定搭配, 在房子上或者在房子里。

    为什么呢? 大家都知道, 因为我们理解了中文的内在含义。

    那怎么理解这些英文介词的内在含义呢?

    今天先讲表示位置的in/on/at。

    in表示在里面, 强调在其的内部。

    (斩护卫对于房间,他是在房间的里面。)

    (鸡腿对于嘴,鸡腿在嘴的里面。)

    ( 虽然照片是平面,但是人是和照片融为一体的。 )

    in是强调事物被包含在内部。

    on表示在上面, 强调在平面上。

    ( floor有地板的意思,住在第二层地板上。 )

    ( 在路面上走。 )

    on强调事物在其表面上。

    at把位置当作一个“点”

    (斩护卫是大学里面的一员。)

    at强调把事物看成一个点。

    今天的内容, 看似简单, 但需要大家静下心来好好理解喔!

  • 5.花心的副词

    这一次要来了解一下形容词的大兄弟副词

    如果说中文的形容词是「…的」; 那么副词就是「…地」。

    在英语中,这 副词 按 构词法大约分为两类:

    「 一类是形容词+ly的派生词, 如,recently,politely,carefully等; 」,

    「 另一类是不+ly的, (有些词跟它的形容词还长得一模一样 如,late,fast,hard) 」

    看起来亲密无间,但是古人云,

    这形容词和副词都有修饰功能, 那怎么分配呢? 上次说, 形容词是情种,独爱名词, 那,其余的… …

    你没看错, 除了动词,介词,连词,限定词, 包括形容词, 就连同类副词也不放过…… 我们今天来讲讲 形容词,副词,动词这三大类吧。

    副词修饰形容词时, 形容词要让大胸弟在前。

    副词和副词在一起的时候, 修饰的那个在前。

    注意:唯有enough这个副词,必须后置

    动词,是个大佬, 在语法界叱咤风云, 不是当谓语,就是当非谓语,

    所以,跟动词一起, 副词就会有两种情况。

    通常情况, 副词 放在 动词 后面当小跟班, 做他身后的男人

    这里 tenderly 放在了 girl 的后面, girl 是 宾语,宾语 肯定也很重要啦, 所以 副词 tenderly 就再往后面站! 但是,在背后的男人, 也总会有在人前的时候。

    1. 一般情况放在 动词 后面, 但是如果放后面有歧义, 那 副词 就要放在 动词 前面。 我们把刚才的句子变了一下:

    读这个句子时, 可能会懵逼, 因为这里到底 tenderly 是修饰 living 还是 kissed 呢? 所以,这个时候副词要放在动词前面:

    紧紧挨在一起! 这样就不会误会了!

    1. 如果修饰的副词表现语气很强烈,那就要放在动词前。

    这样的副词还有 only/ merely/ also/ especially/ even/ particularly/ utterly/ almost/ surely 等等

    我们总结出解决这类问题的三步骤

  • 4.形容词 和 名词 的关系

    电视剧中最常出现

    你发现了吗?一个小小的形容词,就让画风突变。

    上一秒还是后宫嫔妃间的撕[—哔—],下一秒就是霸道总裁式的宠溺。

    小身材,大能量。

    没错,今天我们要开始讲

    话说这形容词呀,还是个情种, 爱慕名词多年,名词走到哪,它跟到哪,常伴左右,不离不弃。

    今天, 就让我们来扒一扒形容词与名词的关系: 前置定语和后置定语

    名词短语 中,用形容词修饰一个 名词 ,通常结构为 「限定词+形容词+名词」

    a stupid dog 一只蠢蠢的狗

    the handsome man 那个帅气的男人

    my cute girlFriend 我可爱的女朋友

    但是,一个形容词怎么能够表达我对女朋友复杂的感情呢?

    当多个 形容词 修饰一个 名词 时, 大家记住一个大原则: 「观点形容词 + 描绘形容词」

    观点形容词:表示对事物的看法

    描绘形容词:表示事物本身的特征

    描绘 形容词 那么多, 还是会争个先后, 越接近事物本质的 形容词 ,离 名词 越近, 这里有个小口诀:

    再来理解下面的内容试试看呢

    my old black Italian leather glove

    a well-known German medical school

    the beautiful big old red Chinese wooden table.

    1. some-,any-,no-,every-

    somebody/anybody/nobody/everybody

    something/anything/nothing/everything

    someone/anyone/no one/everyone

    在修饰「some,any,no,every」 和「one,thing,body」的 合成词 时, 形容词 要后置。

    1. a- 开头的那些单词

    如 「alone, afraid, aside, asleep, alike… 」

    1. 修辞词太复杂了,后置!

    当 修辞词 本身带有不定式, 介词 词组等补足成分时, 也要被后置。

    带 介词 短语

    The coat similar to yours is a birthday gift from my boyfriend. 那件跟你的(外套)相似的外套是我男票送我的生日礼物。

    带不定式

    Girls brave enough to pursue their dreams deserve to be loved. 敢于追求梦想的女孩值得被爱。

    特殊

    一般来说, 形容词 前置后置含义都不变, 不过凡事都有例外,看下面的例子。

    这些词表示特定的词义必须前置或者后置

  • MCP协议

    MCP协议的核心特点

    客户端-服务器架构

    MCP采用客户端-服务器架构,开发者可以通过MCP服务器公开数据,或构建MCP客户端,将AI应用与这些服务器连接。这一设计使得AI助手能够直接访问本地或远程的文件、数据库记录、API响应等多种资源,甚至可以实时操作浏览器,从而在更广泛的应用场景中提供智能支持。

    Claude 3.5内置支持

    值得注意的是,Claude 3.5 Sonnet版本已内置MCP服务器支持,用户只需进行简单配置,即可实现AI助手与本地数据的无缝连接。此外,Anthropic还提供了针对Google Drive、Slack、GitHub等常用平台的预构建MCP服务器,方便开发者快速集成。

    行业应用与生态发展

    多家企业和开发工具公司已开始采用MCP协议,以增强其平台功能。例如,Replit的总裁表示,MCP将成为AI智能体与互联网生态之间的通用语言,推动AI与应用系统互操作的快速发展。

    MCP的推出标志着AI系统与外部数据源连接方式的标准化进程,为开发者提供了更高效的集成路径。随着生态系统的不断发展,MCP有望成为AI助手与现实世界应用之间的桥梁,推动人工智能技术的进一步普及和应用。

    安装和配置

    1. 安装Claude桌面版 点击下载安装

    2. 安装sqlite3

    Copy code
    # macOS命令 使用 Homebrew 安装所需工具
    brew install uv git sqlite3
    
    #Windows命令
    winget install --id=astral-sh.uv -e
    winget install git.git sqlite.sqlite
    
    

    3. 创建数据库

    Copy code
    # 创建一个新的 SQLite 数据库在用户主目录下
    # 创建一个新的SQLite数据库
    sqlite3 ~/test.db <<EOF
    CREATE TABLE 进销存 (
    商品编号 INTEGER PRIMARY KEY,
    商品名称 TEXT,
    库存数量 INTEGER,
    售价 REAL,
    进货价 REAL,
    供应商 TEXT
    );
    
    
    Copy code
    INSERT INTO 进销存 (商品名称, 库存数量, 售价, 进货价, 供应商) VALUES
    ('智能手表', 50, 199.99, 150.00, '科技供应商A'),
    ('无线耳机', 100, 89.99, 60.00, '电子供应商B'),
    ('蓝牙音箱', 75, 79.99, 50.00, '音响供应商C'),
    ('笔记本电脑包', 200, 34.99, 20.00, '箱包供应商D'),
    ('桌面LED台灯', 120, 45.99, 30.00, '家居供应商E'),
    ('键盘', 150, 129.99, 80.00, '科技供应商A'),
    ('鼠标垫', 300, 12.99, 5.00, '电子供应商B'),
    ('USB集线器', 180, 49.99, 25.00, '科技供应商A'),
    ('摄像头', 80, 69.99, 45.00, '电子供应商B'),
    ('屏幕保护膜', 500, 9.99, 3.00, '配件供应商F'),
    ('旅行转换器', 90, 27.99, 15.00, '配件供应商F'),
    ('游戏耳机', 60, 159.99, 120.00, '音响供应商C'),
    ('健身追踪器', 40, 119.99, 90.00, '科技供应商A'),
    ('便携式充电器', 110, 24.99, 15.00, '电子供应商B'),
    ('迷你无人机', 25, 299.99, 200.00, '科技供应商A'),
    ('便携式固态硬盘', 70, 179.99, 140.00, '存储供应商G'),
    ('手机支架', 250, 15.99, 8.00, '配件供应商F'),
    ('高性能鼠标', 130, 89.99, 60.00, '科技供应商A'),
    ('儿童学习平板', 40, 159.99, 100.00, '电子供应商B'),
    ('智能家居开关', 95, 49.99, 30.00, '家居供应商E');
    EOF
    uvx mcp-server-sqlite
    
    

    4. 配置 Claude Desktop

    Copy codenano ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
    Copy code{
      "mcpServers": {
        "sqlite": {
          "command": "uvx",
          "args": ["mcp-server-sqlite", "--db-path", "/Users/charlesqin/test.db"]
        }
      }
    }
    
    
    Copy code
    {
      "mcpServers": {
        "sqlite": {
          "command": "uvx",
          "args": ["mcp-server-sqlite", "--db-path", "/Users/charlesqin/test.db"]
        }
      }
    }
    
    

    prompts

    Copy code
    What's the average price of all products in the database?
    
    Can you analyze the price distribution and suggest any pricing optimizations?
    
    Could you help me design and create a new table for storing customer orders?
    
    
    
    
    Copy code
    ### api
    https://api.search.brave.com/app/dashboard
    
    
    Copy code
    {
      "mcpServers": {
        "brave-search": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-brave-search"],
          "env": {
            "BRAVE_API_KEY": ""
          }
        }
      }
    }
    
    
    

    文件管理

    Copy code
    {
      "mcpServers": {
    	  "filesystem": {
    	    "command": "npx",
    	    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/charlesqin/Desktop", "/Users/charlesqin/Documents"]
    	  }
    	}
    }
    
    
    

    完整配置文件

    Copy code
    {
      "mcpServers": {
        "fetch": {
          "command": "uvx",
          "args": ["mcp-server-fetch"]
        },
        "filesystem": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/charlesqin/test.db"]
        },
        "sqlite": {
          "command": "uvx",
          "args": ["mcp-server-sqlite", "--db-path", "/Users/charlesqin/test.db"]
        },
        "git": {
          "command": "uvx",
          "args": ["mcp-server-git", "--repository", "/Users/charlesqin/claude-test"]
        },
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": ""
          }
        },
        "postgres": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
        },
        "brave-search": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-brave-search"],
          "env": {
            "BRAVE_API_KEY": ""
          }
        },
        "filesystem-extra": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/charlesqin/Desktop", "/Users/charlesqin/Documents"]
        },
        "everything": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-everything"]
        }
      }
    }
    
    
  • 最强开源OCR模型Chandra

    为什么是 Chandra?

    先看几个关键点:

    • 参数与定位:Chandra 约 9B 参数,不是体量怪兽,但专注度很高,目标就是把文档里的结构和要点“捞干净”。
    • 结构化输出:支持直接导出 Markdown / HTML / JSON。这意味着标题层级、段落、列表、表格、图像引用这些结构,尽可能被保留下来,后续就能直接进知识库、搜索系统或排版流程,而不是手工再整理。
    • 多语言与手写体:官方标注 40+ 语言,中文印刷体、中文手写体、表单填写类内容识别都比较稳;医生便笺、问卷、合同这类“格式复杂+手写混排”的场景,它并不是简单“过一遍”,而是尽力恢复结构。
    • 复杂元素友好:在表格、数学公式、报纸多栏、页眉页脚等“高难场景”上,Chandra 的还原度是有说服力的;图表、示意图也能抽取并给出结构化信息(例如图题、说明)。
    • 基准表现:基于公开对比和实际体验,Chandra 在综合表现上超过了 dots.ocr、olmOCR、DeepSeek-OCR 等常见开源方案(尤其是长文档与复杂排版)。这不是“全面碾压”的口号,而是能在关键维度上,给内容团队更稳定的产出。

    实测体验:最打动人的三个细节

    1. 页眉页脚、细小文字不再“爱丢”很多 OCR 在页面信息密集时容易跳过这些“边角料”。Chandra 在长 PDF 扫描件上,能把页眉页脚、页码等稳定提取,并放回正确位置,后续汇编就顺手很多。
    2. 结构化导出真的能用HTML/Markdown/JSON 的导出不是“挂个名”,而是标题层级清楚、段落分明、p 标签/列表/表格组织合理。对于运营、技术团队,复制进 CMS、或者喂给下游解析程序,几乎零改动就能跑。
    3. 复杂排版和混写内容的“韧性”模糊扫描、行间重叠的代码段、表格单元格文字互压、学术论文的公式与参考文献、繁体古籍的小字标点……Chandra 的恢复率都很有韧性。不是完美,但明显更省心

    上手与部署:既能“快用”,也能“深用”

    • 零门槛体验:你可以直接用官方的 Web Demo/平台 上传 PDF 看结果;页面支持切换 HTML/Markdown/JSON 视图,适合先评估质量。
    • 本地一键跑(LM Studio):搜索“Chandra”,选择 4bit/8bit 量化版本下载,就能在本地快速起跑;对个人工作站和轻量生产环境很友好。
    • 官方仓库部署(Ubuntu):熟悉命令行的同学可以按照官方给的流程:git clone 仓库 → uv/pip 安装 → 命令行推理或启动 Web Demo。这样做的好处是:可控、可批量、可集成,方便接入你的数据处理流水线。

    适用人群与场景建议

    • 内容团队 / 自媒体 / 编辑部:批量把扫描稿、采访记录、图文混排材料转为结构化素材,二次创作更快。
    • 企业知识库 / 法务档案:合同、表单、制度手册、历史文档的批量数字化与结构保留,方便检索与复用。
    • 学术与科研:论文 PDF 的公式、表格、参考文献抽取;数据再组织更轻松。
    • 教育场景:试卷、练习册、批注笔记的 OCR;注音、符号、页码等细节不再缺失。
    • 历史文献/古籍整理:繁体与标点的保留度较高,后续人工校勘成本更低。

    该如何在工作流里落地?

    给一个典型的“从试用到生产”的路径供参考:

    1. 小样本试跑:选取你最头疼的几类文档,先通过 Web Demo 验证结构化输出的质量与可用度。
    2. 建立模板:把 HTML/Markdown 的输出样式与你现有 CMS/知识库做一次字段/层级对齐,确定“无痛接入”的模板。
    3. 本地化与自动化:在 LM Studio 或 Ubuntu 部署,用命令行/脚本实现批处理;对接对象存储(如目录监听)、数据库或搜索引擎。
    4. 质量抽检与回标:建立小规模抽检机制,记录失败样本;按场景微调参数或预处理(如分辨率、裁切策略),让模型越跑越稳。
    5. 安全与合规:敏感文档优先本地化运行;对导出的结构化数据进行最小必要字段落库,保留审计日志。

    一点理性预期

    Chandra 的表现让我对“开源 OCR 真正可用”有了信心,但也需要理性看待:极端模糊、严重倾斜或低对比度的原件,仍可能需要前处理(如增强、去噪、旋转校正);个别复杂表格或稀有公式体例,也可能需要微调或人工复核。好消息是,它在长文档稳定性、结构化输出质量这些关键指标上,已经足以支撑“把活儿交给它,再做抽检”的实战工作流。


    一句话总结:如果你在找一款开源、可本地化、对复杂文档友好、且能直接产出可用结构化结果的 OCR,Chandra 值得立刻加入你的工具箱。它不是“所有维度都第一”的神话,但在真正重要的环节——长文档不漏、结构不丢、结果能用——它做得足够好。欢迎你也跑一跑,看看它能不能把你的文档流程“理顺”起来。

    🚀笔记

    Copy codecurl -LsSf https://astral.sh/uv/install.sh | sh
    
    git clone https://github.com/datalab-to/chandra.git
    cd chandra
    
    uv sync
    
    source .venv/bin/activate
    
    pip install chandra-ocr
    
    ulimit -n 65535
    
    chandra_app
    
    # 查看显存 方式1
    watch -n 1 nvidia-smi
    
    # 查看显存 方式2
    sudo apt install nvtop
    
    nvtop