首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用nlp-compromise查找名词和奇异值

nlp-compromise是一个自然语言处理(Natural Language Processing,NLP)工具库,它可以用于查找名词和奇异值(singular value)。下面是关于如何使用nlp-compromise查找名词和奇异值的完善且全面的答案:

  1. 名词的概念: 名词是语言中用来表示人、事物、地点、概念等具体或抽象实体的词语。在句子中,名词通常用作主语、宾语、定语、补语等成分。
  2. 奇异值的概念: 奇异值是线性代数中的一个概念,用于描述矩阵的性质和特征。奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解的方法,将一个矩阵分解为三个矩阵的乘积,其中包括一个奇异值矩阵。
  3. nlp-compromise的使用: nlp-compromise是一个用于自然语言处理的JavaScript库,可以用于处理文本、分词、词性标注等任务。要使用nlp-compromise查找名词和奇异值,可以按照以下步骤进行:

a. 安装nlp-compromise库:

代码语言:txt
复制
  在Node.js环境中,可以使用npm包管理器安装nlp-compromise库,命令如下:
代码语言:txt
复制
  ```
代码语言:txt
复制
  npm install nlp-compromise
代码语言:txt
复制
  ```

b. 导入nlp-compromise库:

代码语言:txt
复制
  在代码中导入nlp-compromise库,以便使用其中的功能,示例代码如下:
代码语言:txt
复制
  ```javascript
代码语言:txt
复制
  const nlp = require('nlp-compromise');
代码语言:txt
复制
  ```

c. 使用nlp-compromise查找名词:

代码语言:txt
复制
  使用nlp-compromise的`.nouns()`方法可以从文本中提取出所有的名词。示例代码如下:
代码语言:txt
复制
  ```javascript
代码语言:txt
复制
  const text = 'This is a sample sentence.';
代码语言:txt
复制
  const doc = nlp.text(text);
代码语言:txt
复制
  const nouns = doc.nouns().out('array');
代码语言:txt
复制
  console.log(nouns);
代码语言:txt
复制
  ```

d. 使用nlp-compromise查找奇异值:

代码语言:txt
复制
  nlp-compromise库主要用于自然语言处理任务,不直接提供奇异值分解功能。要进行奇异值分解,可以使用其他专门的线性代数库或数学库,如NumPy(Python)、Eigen(C++)等。
  1. 名词的分类: 名词可以根据其性质和用途进行分类,常见的名词分类包括但不限于:
    • 具体名词:表示具体的人、事物、地点等,如"apple"(苹果)、"cat"(猫)。
    • 抽象名词:表示抽象的概念、状态等,如"love"(爱)、"happiness"(幸福)。
    • 可数名词:表示可以进行数目上的计数的名词,如"book"(书)、"car"(车)。
    • 不可数名词:表示无法进行数目上的计数的名词,如"water"(水)、"information"(信息)。
  2. 奇异值的优势: 奇异值在线性代数和数据分析中具有重要的应用和优势,包括但不限于:
    • 数据降维:奇异值分解可以用于将高维数据降低到低维空间,减少数据的维度,提高计算效率和可视化效果。
    • 数据压缩:奇异值分解可以用于数据的压缩和重构,通过保留主要的奇异值和特征向量,可以实现对原始数据的有效压缩。
    • 特征提取:奇异值分解可以提取矩阵的主要特征和结构,用于数据的特征提取、模式识别和分类等任务。
    • 矩阵逆运算:奇异值分解可以用于求解矩阵的逆,对于非方阵或奇异矩阵也能得到近似的逆矩阵。
  3. 名词和奇异值的应用场景:
    • 名词的应用场景:名词在自然语言处理、文本分析、信息检索、机器翻译、情感分析等领域具有广泛的应用。例如,通过提取文本中的名词,可以进行关键词提取、文本分类、实体识别等任务。
    • 奇异值的应用场景:奇异值分解在图像处理、推荐系统、数据降维、信号处理等领域有着重要的应用。例如,在图像处理中,可以利用奇异值分解进行图像压缩和去噪;在推荐系统中,可以利用奇异值分解进行用户-物品矩阵的分解和推荐算法的改进。
  4. 腾讯云相关产品和产品介绍链接地址: 由于要求不能提及特定的云计算品牌商,无法给出腾讯云相关产品和产品介绍链接地址。但腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,涵盖了计算、存储、数据库、人工智能等多个领域。您可以访问腾讯云官方网站,了解更多关于腾讯云的产品和服务信息。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在 SQL 中查找重复? GROUP BY HAVING 查询示例教程

如果您想知道如何在表中查找重复,那么您可以在 SQL 中使用 GROUP BY HAVING 子句。 使用 group by 您可以创建组,如果您的组有超过 1 个元素,则意味着它是重复的。...您需要编写一个查询来查找所有重复。...使用 GROUP BY 查找重复元素 这个问题最简单的解决方案是使用 GROUP BY HAVING 子句。...这是查找重复电子邮件的 SQL 查询: SELECT Email FROM Person GROUP BY Email HAVING COUNT(Email) > 1 使用self-join在列中查找重复...= p1.Id ) 总结 这就是如何使用 GROUP BY HAVING 子句在 SQL 中查找重复项的全部内容。 我还向您展示了如何使用自联接带有 EXISTS 子句的子查询来解决这个问题。

14.7K10
  • 如何使用findlocate 命令在Linux 中查找文件目录?

    既然是Linux系统,那么使用命令行形式去查找肯定是最快最直接的方法,虽然现在有很多连接工具可以提供查找功能,但是归根到底还是利用了相关查找的命令,那么今天瑞哥就带大家来学习一下,如何用命令的形式查找文件...使用 find 命令在 Linux 中查找文件目录 按名称查找文件 按部分名称查找文件 按大小查找文件 使用时间戳查找文件 按所有者查找文件 按权限查找文件 按名称查找目录 使用 locate 命令在...find 命令示例将搜索所有小于 100 KB 的文件,注意- 符号的使用: find /home -type f -size -100k 如何在 Linux 中查找特定大小的文件?...find /etc -type f -mmin -1 可以组合表达式,以下是如何在 Linux 中查找不到 60 分钟前超过 30 分钟前更改过的文件: find /etc -type f -mmin...本文应该让您对如何在 Linux 系统上查找文件有一个基本的了解,想要将搜索命令玩的溜,别忘了使用各类参数!

    5.8K10

    如何使用findlocate 命令在Linux 中查找文件目录?

    既然是Linux系统,那么使用命令行形式去查找肯定是最快最直接的方法,虽然现在有很多连接工具可以提供查找功能,但是归根到底还是利用了相关查找的命令,那么今天瑞哥就带大家来学习一下,如何用命令的形式查找文件...使用 find 命令在 Linux 中查找文件目录 Linux find 命令是一个强大的工具,它使系统管理员能够根据模糊的搜索条件定位管理文件目录,它支持按文件、文件夹、名称、创建日期、修改日期...find 命令示例将搜索所有小于 100 KB 的文件,注意- 符号的使用: find /home -type f -size -100k 如何在 Linux 中查找特定大小的文件?...find /etc -type f -mmin -1 可以组合表达式,以下是如何在 Linux 中查找不到 60 分钟前超过 30 分钟前更改过的文件: find /etc -type f -mmin...本文应该让您对如何在 Linux 系统上查找文件有一个基本的了解,想要将搜索命令玩的溜,别忘了使用各类参数!

    6.9K00

    如何在 Windows Linux 上查找哪个线程使用的 CPU 时间最长?

    在 Windows Linux 的系统监控过程中,寻找占用 CPU 时间最长的线程/进程是一项非常重要的任务。...下面将针对这个问题提供 Windows Linux 平台下分别应该如何进行的解答。 Windows 平台查找占用 CPU 时间最长的线程 1、打开“任务管理器”,并切换到“详细信息”选项卡。...3、在“详细信息”选项卡上单击正在运行的应用程序或进程的名称,然后单击“事件跟踪调试器”检查该线程的 CPU 使用率等属性信息。...除了top外,sar, ps命令也能够看到CPU使用率情况。 在以上命令中,我们可以看到每个线程的 CPU 使用 PID,以及其他属性。...无论Windows还是Linux平台,都可以通过内置命令行工具来查找哪个线程/进程花费了最多的CPU时间。

    55130

    如何使用SharpSniper通过用户名IP查找活动目录中的指定用户

    关于SharpSniper  SharpSniper是一款针对活动目录安全的强大工具,在该工具的帮助下,广大研究人员可以通过目标用户的用户名登录的IP地址在活动目录中迅速查找定位到指定用户。...SharpSniper便应运而生,SharpSniper是一款简单且功能强大的安全工具,可以寻找目标域用户的IP地址,并帮助我们轻松寻找定位到这些用户。  ...当电脑联入网络时,域控制器首先要鉴别这台电脑是否是属于这个域的,用户使用的登录账号是否存在、密码是否正确。如果以上信息有一样不正确,那么域控制器就会拒绝这个用户从这台电脑登录。...工具下载  广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https://github.com/HunnicCyber/SharpSniper.git  工具使用

    2.3K40

    大厂算法面试:使用移动窗口查找两个不重叠且元素等于给定的子数组

    首先我们看第1点如何完成。...策略如下,我们使用一种叫滑动窗口的办法,所谓窗口其实就是两个标记:start, end,它分别对应窗口的起始结束位置,例如start = 0, end = 2,那么这个窗口所包含的元素就是[1,2,1...使用滑动窗口我们能方便的找到元素等于给定的子数组。注意到数组只包含正整数,因此如果保持start不变,end向右边移动,那么窗口内部的元素就会变大,如果保持end不变,那么窗口内元素就会减小。...所以我们首先让start = 0, end = -1,此时窗口内不包含任何元素,于是窗口元素可以认为是0.接下来我们让end向右移动一个单位,也就是end=0,此时窗口包含1个元素,也就是头元素2,此时窗口元素小于给定...如此类推,我们从数组最左端出发,如果窗口内元素小于给定指定,那么就向右移动end,如果大于给定,那么就像左移动一个单位,当窗口挪出数组,也就是end的大于数组最后一个元素的下标时,查找结束,当前能找到所有满足元素等于特定的所有子数组

    1.6K20

    用spaCy自然语言处理复盘复联无限战争(上)

    《复仇者联盟4:终极游戏》已经上映不短的时间,我,世界上大多数人一样,在第一时间冲到电影院去看,体验《复仇4》是如何拯救世界并且结束第一个十年的故事的。...在本文中,我使用spaCy,一个NLP Python开源库来帮助我们处理理解大量的文本,我分析了电影的脚本来研究以下项目: 电影中排名前十的动词、名词、副词形容词。 由特定角色说出的动词名词。...所以,我们知道了动作,以及它们是如何被描述的,现在是时候看看名词了。 ? “这将是以命换命。灭霸终将会得到那块石头。...因此,我使用了与查找前十名动词名词相同的程序,但是是在角色级别上。 因为电影中有很多角色,所以我只选择了一些台词比较合理的角色,加上一些我最喜欢的角色:)。...这些角色分别是钢铁侠、奇异博士、卡魔拉、雷神托尔、火箭浣熊、星爵、乌木·莫灭霸。对不起,队长,你没有入选。 下面的图片显示了这些角色使用的最多的名词。 ? 星爵到底为什么这么频繁地叫德拉克斯?

    62721

    如何使用msprobe通过密码喷射枚举来查找微软预置软件中的敏感信息

    关于msprobe  msprobe是一款针对微软预置软件的安全研究工具,该工具可以帮助广大研究人员利用密码喷射信息枚举技术来寻找微软预置软件中隐藏的所有资源敏感信息。...该工具可以使用与目标顶级域名关联的常见子域名列表作为检测源,并通过各种方法来尝试识别发现目标设备中微软预置软件的有效实例。  ...支持的产品  该工具使用了四种不同的功能模块,对应的是能够扫描、识别发下你下列微软预置软件产品: Exchange RD Web ADFS Skype企业版  工具安装  该工具基于Python开发,...来下载安装msprobe: pipx install git+https://github.com/puzzlepeaches/msprobe.git  工具使用  工具的帮助信息支持的功能模块如下所示...  使用顶级域名搜索相关的ADFS服务器: msprobe adfs acme.com 使用顶级域名配合Verbose模式输出查找RD Web服务器: msprobe rdp acme.com -v

    1.2K20

    如何在 Linux 中按内存 CPU 使用查找运行次数最多的进程

    在 Linux 中,您可以使用各种小工具或终端命令,也可以使用一个命令按内存 CPU 使用率显示所有正在运行的进程。检查 RAM CPU 负载后,您可以确定要杀死的应用程序。...尽管使用了繁重的系统监控工具,但一个简单的命令可以显示系统上当前的 CPU 内存使用情况,从而节省您的时间精力。使用命令方便、轻巧,并且不会占用太多系统资源来显示正在进行的 CPU 内存负载。...以下ps命令将按内存 CPU 使用情况打印正在运行的进程的总体状态。 图片 您还可以运行一个简短的命令来查看特定包的 CPU 内存使用情况。...按内存 CPU 使用情况查看正在运行的进程 到目前为止,我们已经了解了ps命令是什么、它是如何工作的,以及如何通过 Linux 上的 ps 命令查看整体状态。...如何查看更多命令选项 到目前为止,我们已经通过了一些最常用的 ps 命令来查看 Linux 系统上的内存 CPU 使用情况下正在运行的进程。

    3.9K20

    线性代数在数据科学中的十大强大应用(二)

    涵盖主成分分析(PCA)与奇异分解(SVD)背后的线性代数知识。相信这也是各位数据科学爱好者常用的各项技术,希望可以帮大家理清思路对这些算法有更进一步的认识。...系列目录: 为什么学习线性代数 机器学习中的线性代数 损失函数 正则化 协方差矩阵 支持向量机分类器 降维中的线性代数 主成分分析(PCA) 奇异分解(SVD) 自然语言处理中的线性代数 词嵌入(Word...使用“词性标签”“语法关系”(如专有名词的数量)等文本数据NLP属性 词向量符号或词嵌入(Word Embeddings) 词嵌入(Word Embeddings)是自然语言处理(NLP)中语言模型与表征学习技术的统称...它也是奇异分解(SVD)的另一种应用。 潜在意味着'隐藏'。正如其名称一样,LSA试图通过利用单词周围的上下文从文档中捕获隐藏的主题。...图像表示为张量 您如何理解Computer Vision(计算机视觉)中的“vision”这个词?显然,计算机不能够像人类那样处理图像。就像我之前提到的,机器学习算法需要使用数字特征进行学习。

    87800

    线性代数在数据科学中的十大强大应用(二)

    涵盖主成分分析(PCA)与奇异分解(SVD)背后的线性代数知识。相信这也是各位数据科学爱好者常用的各项技术,希望可以帮大家理清思路对这些算法有更进一步的认识。...使用“词性标签”“语法关系”(如专有名词的数量)等文本数据NLP属性 词向量符号或词嵌入(Word Embeddings) 词嵌入(Word Embeddings)是自然语言处理(NLP)中语言模型与表征学习技术的统称...它也是奇异分解(SVD)的另一种应用。 潜在意味着'隐藏'。正如其名称一样,LSA试图通过利用单词周围的上下文从文档中捕获隐藏的主题。...图像表示为张量 您如何理解Computer Vision(计算机视觉)中的“vision”这个词?显然,计算机不能够像人类那样处理图像。就像我之前提到的,机器学习算法需要使用数字特征进行学习。...然后,对应到图像中,则每个像素是三个通道中相应的组合: 实际上,不是使用3个矩阵而是使用张量来表示图像,张量是广义的n维矩阵。对于RGB图像,使用三阶张量来表示。

    73220

    气象编程|利用Python对夏季降水同期大西洋海温进行SVD分析

    我们通常计算两个变量之间的相关关系时往往使用相关系数计算,然而相关系数只能用于两个序列(两个一维变量)或者一个序列一个场(一个一维变量一个三维变量)之间的相关关系,那如果我们想找到两个变量场之前的相关性...左场提取的模态称为左奇异向量,右场提取的模态为右奇异向量。需要注意的是,各个场的奇异向量均为相互正交的。第一左奇异向量第一右奇异向量及其各自的时间系数共同构成了SVD的第一模态,也可以叫第一对模态。...还有三个重要的名词要掌握。第一个是总体相关系数,指的是一对奇异向量对应的左右时间系数的相关系数,用来看左场第一模态右场第一模态的相关性(总体相关系数是一个数)。...第二个名词是同性相关系数,表示原场原场某一模态的时间序列的相关系数(为一个场),在一定程度上可以反应该变量的一个遥相关型。...第三个名词是异性相关系数,代表原场(比如左场)对立场(比如右场)某个模态的时间序列的相关系数(为一个场),表是一个场对另一个场的影响关键区。

    3.7K32

    数据科学中必须知道的5个关于奇异分解(SVD)的应用

    线性代数的一种这样的用途是奇异分解(SVD)用于降维。 你在数据科学中一定很多次遇到SVD。它无处不在,特别是当我们处理降维时。但它是什么?它是如何工作的?SVD应用有什么?...我们将在本文中介绍SVD的五个超级有用的应用,并将探讨如何在Python中以三种不同的方式使用SVD。 奇异分解(SVD)的应用 我们将在此处遵循自上而下的方法并首先讨论SVD应用。...如果你对它如何工作感兴趣的,我在下面会讲解SVD背后的数学原理。现在你只需要知道四点来理解这些应用: SVD是将矩阵A分解为3个矩阵--U,SV。 S是奇异的对角矩阵。...为此,选择前k个奇异并相应地截断3个矩阵。 3种在Python中使用SVD的方法 我们知道什么是SVD,它是如何工作的,以及它在现实世界中的用途。但是我们如何自己实现SVD呢?...你可以使用numpy.linalg中的SVD获取完整的矩阵U,SV。注意,S是对角矩阵,这意味着它的大多数元素都是0。这称为稀疏矩阵。为了节省空间,S作为奇异的一维数组而不是完整的二维矩阵返回。

    6K32

    NLP揭秘:从自然语言处理的角度出发,女儿也是灭霸的真爱

    本文通过使用spaCy(用于处理理解大量文本的NLPPython 开源程序库)对复联3的剧本进行分析,并研究以下几个项目: · 整部电影中使用最频繁的前十个动词、名词、副词形容词。...整部电影中使用最频繁的前十个动词、名词、副词形容词 是否可能仅通过了解出现最频繁的动词就推断出电影的整体走向情节呢?下文的图表证明了这一观点。...(对不起,小家伙)——灭霸 特定角色使用最多的动词名词 前面的图片列举了电影中最常见的动词名词。虽然这些结果让我们对电影的整体感觉情节有了一定的了解,但它并没有过多地讲述各个角色的个人经历。...这些角色分别是钢铁侠、奇异博士、卡魔拉、雷神、火箭浣熊、星爵、乌木喉灭霸。对不起,队长没有入选。 下图展示了这些角色使用次数最多的10个名词。 星爵到底为什么这么频繁地叫德拉克斯?...通过观察他们最常用的动词、名词语言特点,我们了解、确认并重温了钢铁侠对地球的忠诚、奇异博士保护时间宝石的誓言、雷神对复仇的渴望以及灭霸完成自己野心的坚决。

    1K30

    机器学习的数学,拿你如何是好

    应该说,学机器学习,数学是无论如何也绕不过去的一道坎。这就带了个很严重的问题: 对于人工智能、机器学习深度学习,我们接触不多,光听这仨挺科幻的名词,一定都有多少有点兴趣翻翻看。...机器学习里使用数学,有点像UP主玩梗,你要想Get到笑点,首先是不是得知道梗是什么意思。...譬如说机器学习里面常提到“奇异分解”,你首先得知道这是矩阵运算里的概念,然后分词,把这个词拆分成“奇异“分解”,弄懂奇异是什么意思,分解又有什么作用,最后你就能弄懂在机器学习里它扮演的角色。...机器学习中使用最多的就是线性代数,不过,线性代数也是个很庞大的数学分支,而机器学习只使用了其中的一小部分,具体来说,是向量矩阵以及相关运算,上面提到的奇异分解,就是矩阵运算的一种。...这里且不争论,但机器学习大量使用了统计学的概念方法是的的确确的事实。这个方面我推荐《概率论基础教程》: Ross写的概率统计方面的书都挺不错,另一本《随机过程》也是经典,不过机器学习离的有点远。

    63820

    ML算法——线代预备知识随笔【机器学习】

    将普通矩阵分解为奇异向量奇异,对于一个m x n的矩阵A,其奇异分解可以表示为: A = UΣV^T 其中,U是一个m x m的正交矩阵,Σ 是一个m x n的矩阵,其对角线上的元素称为奇异,...Σ对角线上的元素被称为A的奇异。 U的列向量:左奇异向量 V的列向量:右奇异向量 对角阵不是方阵,这说法头一次见,如何确定Σ的元素?...Σ_{ii} = σ_i ,其他未知元素均为0,常将奇异按降序排列,确保Σ的唯一性。 如何求解U? 求解 AA^T 的特征 \lambda ,进而求得特征向量 μ,组成矩阵 U 。...如何求解V? 求解 A^TA 的特征 \lambda ,进而求得特征向量 μ,组成矩阵 V 。 如果A是正定矩阵可以进行特征分解,奇异分解又是怎样的结果?...特征特征向量的求解:在机器学习中,特征特征向量通常用于对数据进行降维或进行模型训练。当遇到求解矩阵的特征特征向量困难的情况时,可以使用广义逆矩阵来求解。

    24920

    如何奇异分解(SVD)变得不“奇异”?

    本文红色石头将继续使用白话语言,介绍机器学习中应用十分广泛的矩阵分解方法:奇异分解(SVD)。本文不注重详细的数学推导,只注重感性的理解以及如何在实际应用中使用它们。...图形化表示奇异分解如下图所示: 举个简单的例子来说明,令 A 为 3x2 的矩阵: 则有: 计算得到特征向量 P 对应的特征 σ 为: 然后,有: 计算得到特征向量 Q 对应的特征...奇异分解可以写成以下的形式: 其中,p1 q1 分别为左奇异矩阵奇异矩阵的特征向量。 4 如何形象化理解 SVD 奇异分解到底有什么用呢?如何形象化地理解奇异?...若使用 SVD,取前 50 个最大的奇异即可,则总共需要存储的元素个数为: (870+1+870)x50=87050 显然,所需存储量大大减小了。...值得一提的是,奇异从大到小衰减得特别快,在很多情况下,前 10% 甚至 1% 的奇异就占了全部的奇异之和的 99% 以上了。这对于数据压缩来说是个好事。

    59010

    降维算法: 奇异分解SVD

    SVD 概述 奇异分解(Singular Value Decomposition)简称SVD,主要作用是简化数据,提取信息。 利用SVD实现,我们能够用小得多的数据集来表示原始数据集。...这样做,实际上是去除了噪声冗余信 息。当我们试图节省空间时,去除噪声冗余信息就是很崇高的目标了,但是在这里我们则是从数据中 抽取信息。...SVD是如何从这些充满着大量噪声的数据中抽取相关特征呢?...在LSI中,一个矩阵是由文档词语组成的。当我们在该矩阵上应用SVD时,就会构建出多个奇异。这些奇异代表了文档中的概念或主题,这一特点可以用于更高效的文档搜索。...简单搜索的另一个问题就是同义词的使用。这就是说,当我们查找一个词时,其同义词所在的文档可能并不会匹配上。如果我们从上千篇相似的文档中抽取出概念,那么同义词就会映射为同一概念。

    63930

    机器学习降维之奇异分解(SVD)

    知乎马同学的回答如何理解相似矩阵?马同学高等数学,读完之后再看本篇文章会有很大帮助。 1. 回顾特征特征向量 我们首先回顾下特征特征向量的定义,如下所示。...下图可以形象的表示出上述SVD的定义,但我们如何求出SVD分解后的U,Σ,V这三个矩阵呢? ? ? ? UV都已经求出,现在只有奇异矩阵Σ没有求出。...SVD示例 下面我们通过一个简单例子来说明矩阵式如何进行奇异分解的,假设矩阵A为 ? ? ? ? ? ? 4. SVD性质 对于SVD有哪些重要的性质值得我们注意呢?...对于奇异,它跟特征分解中的特征类似,在奇异矩阵中也是按照从大到小排列,而且奇异的减少特别的快,在很多情况下,前10%甚至1%的奇异就占了全部奇异之和的99%以上的比例。...另一方面,PCA仅仅使用了SVD的右奇异矩阵,没有使用奇异矩阵,那么左奇异矩阵有什么用呢?

    1.6K20
    领券