Questions tagged «text-mining»

指与通过识别模式从文本形式的数据中提取信息有关的数据挖掘的子集。文本挖掘的目标通常是自动地将给定文档分类为多个类别之一,并动态地提高此性能,使其成为机器学习的一个示例。此类文本挖掘的一个示例是用于电子邮件的垃圾邮件过滤器。

2
符合道德且经济高效地扩展数据报废
生活中很少有什么能让我高兴的,例如从Internet上抓取结构化和非结构化数据,并在我的模型中使用它们。 例如,数据科学工具包(或RDSTKR程序员)允许我使用IP或地址提取大量基于位置的良好数据,tm.webmining.plugin而R的tm软件包使抓取金融和新闻数据变得直截了当。当超越此类(半)结构化数据时,我倾向于使用XPath。 但是,我一直在不断受到您允许进行的查询数量限制的限制。我认为Google将我限制为每24小时大约50,000个请求,这对于大数据是个问题。 从技术角度来看,解决这些限制很容易-只需切换IP地址并清除环境中的其他标识符即可。但是,这同时引起了道德和财务方面的关注(我认为?)。 有没有我忽略的解决方案?

4
比较不同格式的文档时,TF-IDF和余弦相似度的替代方法
我一直在从事一个小型的个人项目,该项目需要用户的工作技能,并根据这些技能为他们建议最理想的职业。我使用工作清单数据库来实现这一目标。目前,代码的工作方式如下: 1)处理每个职位清单的文本以提取清单中提到的技能 2)对于每个职业(例如“数据分析师”),将针对该职业的工作清单的处理后的文本合并到一个文档中 3)计算职业文件中每种技能的TF-IDF 之后,我不确定应该使用哪种方法根据用户的技能列表对职业进行排名。我见过的最流行的方法是将用户的技能也视为文档,然后计算技能文档的TF-IDF,并使用余弦相似度来计算技能文档与每个文档之间的相似度。职业文件。 这对我来说似乎不是理想的解决方案,因为在比较两个相同格式的文档时,最好使用余弦相似度。因此,TF-IDF似乎根本不适合应用于用户的技能列表。例如,如果用户将其他技能添加到他们的列表中,则每个技能的TF都会下降。实际上,我不在乎用户技能列表中技能的频率是多少—我只是在乎他们是否拥有这些技能(也许他们对这些技能的了解程度如何)。 似乎更好的指标是执行以下操作: 1)对于用户拥有的每种技能,请在职业文档中计算该技能的TF-IDF 2)对于每个职业,将所有用户技能的TF-IDF结果相加 3)根据上述总和来排名职业 我在想这里的正确方法吗?如果是这样,是否有任何算法可以沿这条线运行,但比简单的总和还要复杂?谢谢您的帮助!

3
非结构化文本分类
我将对非结构化文本文档进行分类,即结构未知的网站。我要分类的课程数量有限(目前,我相信不超过三个)。有人对我的入门提出建议吗? 在这里“言语袋”方法可行吗?后来,我可以基于文档结构(也许是决策树)添加另一个分类阶段。 我对Mahout和Hadoop有点熟悉,所以我更喜欢基于Java的解决方案。如果需要,我可以切换到Scala和/或Spark引擎(ML库)。

2
偏好匹配算法
我正在研究这个副项目,我需要在其中构造以下问题的解决方案。 我有两组人(客户)。集团A打算购买,集团B打算出售确定的产品X。该产品具有一系列的属性x_i,我的目标是促进之间的交易A,并B通过匹配他们的喜好。主要思想是指出A对应B产品的每个成员,其产品更适合其需求,反之亦然。 问题的一些复杂方面: 属性列表不是有限的。买方可能会对非常特殊的特性或某种设计感兴趣,这在人群中很少见,我无法预测。先前无法列出所有属性; 属性可以是连续的,二进制的或不可量化的(例如:价格,功能,设计); 关于如何解决此问题并以自动化方式解决它的任何建议? 如果可能的话,我也希望参考一些其他类似的问题。 很棒的建议!与我思考问题的方式有很多相似之处。 映射属性的主要问题是产品描述的详细程度取决于每个购买者。让我们以汽车为例。产品“汽车”具有很多属性,包括性能,机械结构,价格等。 假设我只想要便宜的汽车或电动汽车。好的,这很容易映射,因为它们代表了该产品的主要功能。但是,例如,假设我要一辆配备双离合变速器或氙气大灯的汽车。嗯,数据库中可能有许多具有此属性的汽车,但我不会要求卖方在有人发现它们之前先将其详细信息填写到他们的产品中。这样的程序将要求每个卖方填写一个复杂,非常详细的表格,仅尝试在平台上出售其汽车。就是行不通。 但是,我仍然面临的挑战是在搜索中尽可能详细地进行匹配。因此,我的思维方式是映射产品的主要方面(可能与每个人都相关的方面),以缩小潜在卖方的类别。 下一步将是“优化搜索”。为了避免创建过于详细的表格,我可以要求买卖双方写明其规格的自由文本。然后使用一些单词匹配算法来查找可能的匹配项。尽管我知道这不是解决问题的适当方法,因为卖方无法“猜测”买方的需求。但是可能会让我靠近。 建议的加权标准很好。它使我能够量化卖方满足买方需求的水平。但是,缩放部分可能是个问题,因为每个属性的重要性因客户端而异。我正在考虑使用某种模式识别,或者只是要求购买者输入每个属性的重要性级别。

2
使用卷积神经网络进行文档分类
我正在尝试使用CNN(卷积神经网络)对文档进行分类。短文本/句子的CNN已在许多论文中进行了研究。但是,似乎没有论文将CNN用于长文本或文档。 我的问题是文档中的功能太多。在我的数据集中,每个文档都有1000多个标记/单词。为了将每个示例提供给CNN,我使用word2vec或手套将每个文档转换成矩阵,从而得到一个大矩阵。对于每个矩阵,高度是文档的长度,宽度是单词嵌入矢量的大小。我的数据集有9000多个示例,并且训练网络需要花费大量时间(整整一周),这使得难以微调参数。 另一种特征提取方法是对每个单词使用一个热向量,但这会创建非常稀疏的矩阵。当然,这种方法比以前的方法花费更多的时间进行训练。 那么,有没有一种在不创建大型输入矩阵的情况下提取特征的更好方法? 以及如何处理可变长度的文件?当前,我添加了特殊字符串以使文档具有相同的长度,但是我认为这不是一个很好的解决方案。

1
如何确定字符序列是英文单词还是杂音
您将尝试从单词列表中提取什么样的功能以供将来预测,是现有单词还是仅是字符混乱? 我在那儿找到了对任务的描述。 您必须编写一个程序来回答给定单词是否为英语。这很容易-您只需要在词典中查找单词-但有一个重要限制:您的程序不得大于64 KiB。 因此,我认为可以使用逻辑回归来解决问题。我没有大量的数据挖掘经验,但是这项任务对我来说很有趣。 谢谢。

1
在小文本文件上应用word2vec
我是word2vec的新手,请耐心等待。我有一组文本文件,每个文件包含一组1000-3000之间的推文。我选择了一个通用关键字(“ kw1”),并希望使用word2vec查找与“ kw1”语义相关的术语。例如,如果关键字是“ apple”,我希望基于输入文件看到相关的术语,例如“ ipad”,“ os”,“ mac”...。因此,对于每个输入文件,这组与“ kw1”相关的术语会有所不同,因为word2vec将在单个文件上进行训练(例如,5个输入文件,在每个文件上运行word2vec 5次)。 我的目标是在给定公共关键字(“ kw1”)的情况下,为每个输入文件查找相关术语集,该关键字将用于其他目的。 我的问题/疑问是: 将word2vec用于此类任务是否有意义?考虑到输入文件的大小,使用它在技术上是否正确? 我已经从code.google.com下载了代码:https : //code.google.com/p/word2vec/,并进行了如下尝试: time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50 ./distance vectors.bin 从结果中可以看出,当我使用“距离”工具获取与“ kw1”相关的术语时,收到了很多嘈杂的术语(停用词)。因此,我确实删除了停用词和其他嘈杂的用语,例如用户提及。但是我还没有看到word2vec需要清除输入数据的地方...? 您如何选择正确的参数?当我更改“ -window”,“-iter”等参数时,我看到的结果(运行距离工具)有很大不同。我应该使用哪种技术来找到参数的正确值。(由于我将按比例放大数据集,因此对我来说,人工尝试和错误是不可能的)。

3
哈希向量化器和tfidf向量化器有什么区别
我正在将文本文档的语料库转换为每个文档的单词向量。我已经尝试过使用TfidfVectorizer和HashingVectorizer 我了解a 不像a 那样HashingVectorizer考虑IDF分数TfidfVectorizer。我仍然使用a的原因HashingVectorizer是它在处理庞大数据集时具有的灵活性,如此处和此处所述。(我的原始数据集有3000万个文档) 目前,我正在处理45339个文档的样本,因此,我TfidfVectorizer也可以使用。当我在相同的45339文档上使用这两个矢量化器时,得到的矩阵是不同的。 hashing = HashingVectorizer() with LSM('corpus.db')) as corpus: hashing_matrix = hashing.fit_transform(corpus) print(hashing_matrix.shape) 哈希矩阵形状(45339,1048576) tfidf = TfidfVectorizer() with LSM('corpus.db')) as corpus: tfidf_matrix = tfidf.fit_transform(corpus) print(tfidf_matrix.shape) tfidf矩阵形状(45339,663307) 我想更好地理解a HashingVectorizer和a 之间的区别TfidfVectorizer,以及这些矩阵大小不同的原因-尤其是单词/术语的数量。

4
在文本处理中使用群集
嗨,这是我在数据科学堆栈中的第一个问题。我想创建一种文本分类算法。假设我有大量的文字和文章。可以说大约5000篇纯文本。我首先使用一个简单的函数来确定所有四个及以上字符词的频率。然后,我将其用作每个训练样本的功能。现在,我希望我的算法能够根据训练集的特征对训练集进行聚类,这是文章中每个单词的出现频率。(请注意,在此示例中,每篇文章将具有其自己的独特功能,因为每篇文章具有不同的功能,例如,一篇文章有​​10个“水”和23个“纯”,另一个则有8个“政治”和14个“杠杆”)。您能否为该示例建议最佳的聚类算法?

3
NER的无监督功能学习
我已经利用CRF算法实现了NER系统,其手工制作的功能给出了很好的结果。问题是我使用了许多不同的功能,包括POS标签和引理。 现在,我想针对不同的语言制作相同的NER。这里的问题是我不能使用POS标签和引理。我开始阅读有关深度学习和无监督特征学习的文章。 我的问题是: 是否可以使用CRF算法进行无监督特征学习的方法?有没有人尝试过并获得良好的结果?是否有任何有关此问题的文章或教程? 我仍然不完全了解这种功能创建方式,因此,我不想花很多时间来解决不起作用的问题。因此,任何信息都将真正有帮助。现在,基于深度学习创建整个NER系统还有些困难。

3
最佳科学计算语言[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 似乎大多数语言都具有一定数量的科学计算库。 Python有 Scipy Rust 有 SciRust C++有几个包括ViennaCL和Armadillo Java具有Java Numerics和Colt其他几个 且不说像语言R和Julia明确的科学计算而设计。 有这么多种选择,您如何选择适合任务的最佳语言?另外,哪种语言的性能最高?Python并且R似乎在该领域具有最大的吸引力,但从逻辑上讲,编译语言似乎是一个更好的选择。会有什么表现胜过Fortran?此外编译语言往往有GPU加速,而解释性语言如R并Python没有。选择一种语言时应该考虑什么?哪些语言可以在效用和性能之间取得最佳平衡?还有我错过的具有重要科学计算资源的语言吗?
10 efficiency  statistics  tools  knowledge-base  machine-learning  neural-network  deep-learning  optimization  hyperparameter  machine-learning  time-series  categorical-data  logistic-regression  python  visualization  bigdata  efficiency  classification  binary  svm  random-forest  logistic-regression  data-mining  sql  experiments  bigdata  efficiency  performance  scalability  distributed  bigdata  nlp  statistics  education  knowledge-base  definitions  machine-learning  recommender-system  evaluation  efficiency  algorithms  parameter  efficiency  scalability  sql  statistics  visualization  knowledge-base  education  machine-learning  r  python  r  text-mining  sentiment-analysis  machine-learning  machine-learning  python  neural-network  statistics  reference-request  machine-learning  data-mining  python  classification  data-mining  bigdata  usecase  apache-hadoop  map-reduce  aws  education  feature-selection  machine-learning  machine-learning  sports  data-formats  hierarchical-data-format  bigdata  apache-hadoop  bigdata  apache-hadoop  python  visualization  knowledge-base  classification  confusion-matrix  accuracy  bigdata  apache-hadoop  bigdata  efficiency  apache-hadoop  distributed  machine-translation  nlp  metadata  data-cleaning  text-mining  python  pandas  machine-learning  python  pandas  scikit-learn  bigdata  machine-learning  databases  clustering  data-mining  recommender-system 

1
文本分类问题:Word2Vec / NN是最好的方法吗?
我正在设计一个系统,使给定的一段文本能够对其进行分类并确定上下文: 经过用户生成的文本段落(如评论/问题/答案)的培训 训练集中的每个项目都将标有。因此,例如(“类别1”,“文本段落”) 将有数百个类别 建立这样一个系统的最佳方法是什么?我一直在研究几个不同的选项,以下是可能的解决方案的列表。Word2Vec / NN目前是最佳解决方案吗? 递归神经张量网络馈送了平均Word2Vec数据 RNTN和段落向量(https://cs.stanford.edu/~quocle/paragraph_vector.pdf)? 深度信仰网络中使用的TF-IDF TF-IDF和Logistic回归 单词袋和朴素贝叶斯分类

3
向量空间模型余弦tf-idf,用于查找相似文档
拥有超过百万份文档的语料库 对于给定的文档,想像在向量空间模型中一样使用余弦查找相似的文档 d1⋅d2/(||d1||||d2||)d1⋅d2/(||d1||||d2||)d_1 \cdot d_2 / ( ||d_1|| ||d_2|| ) 所有tf均已使用增强频率进行了归一化,以防止像以下tf-idf那样偏向于较长的文档: tf(t,d)=0.5+0.5f(t,d)max{f(t,d):t∈d}tf(t,d)=0.5+0.5f(t,d)max{f(t,d):t∈d}tf(t,d)=0.5+0.5\frac{f(t,d)}{\mathrm{max}\{f(t,d): t\in d\}} 预先计算了所有 预先计算分母的值, 因此对于给定的需要得分超过100万d 2 相似度的阈值应为0.6余弦 d 1||d||||d||||d||d1d1d1d2d2d2 我可以观察到给定|的||d1||||d1||||d_1||范围相当狭窄 | d 2 | | 为余弦≥ 0.6 例如,在一个搜索类似为的余弦≥ 0.6和| | d 1 | | 之7.7631然后| | d 2 | | 范围从7.0867到8.8339, 超出余弦阈值0.6范围从到0.7223到89.3395, 这是标准tf文档归一化的||d2||||d2||||d_2||≥≥\ge≥≥\ge||d1||||d1||||d_1||||d2||||d2||||d_2||||d2||||d2||||d_2|| 它正在查看很多没有机会成为余弦0.6的机会 ||d2||||d2||||d_2|| 最后的问题是: 对于给定的和余弦> = …

1
监督学习算法中的多个标签
我有一个带有相应主题的文本语料库。例如"A rapper Tupac was shot in LA",它被标记为["celebrity", "murder"]。因此,基本上每个特征向量可以具有多个标签(数量不相同。第一个特征向量可以具有3个标签,第二个,第三个5个)。 如果每个文本仅对应一个标签,则尝试使用Naive Bayes分类器,但是我真的不知道如果可以有多个标签该怎么办。 有什么方法可以将朴素贝叶斯转换为多标签分类问题(如果有更好的方法-请让我知道)? PS关于我的数据的几件事。 数据集中约有10.000个元素 文字约为2-3个句子 每个文本最多7个标签

3
日志文件分析:从值部分中提取信息部分
我正在尝试在我们产品之一的多个日志文件上构建数据集。 不同的日志文件具有各自的布局和内容。我成功地将它们分组在一起,只剩下一步了... 确实,日志“消息”是最好的信息。我没有所有这些消息的完整列表,并且基于这些消息进行硬编码是一个坏主意,因为该列表每天都可能更改。 我想做的是将标识文本与值文本分开(例如:“ Loaded file XXX”变成(标识:“ Loaded file”,值:“ XXX”))。不幸的是,该示例很简单,并且在现实世界中存在不同的布局,有时还有多个值。 我当时在考虑使用字符串内核,但它是为了集群化而设计的……cluseting在这里不适用(我不知道各种类型的消息的数量,尽管那会太多)。 你有什么主意吗? 谢谢你的帮助。 PS:对于那些编程的人,这可能更容易理解。假设该代码包含printf(“ blabla%s”,“ xxx”)->我希望将“ blabla”和“ xxx”分开

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.