我在长列表中的数千个名称的数据框中有一个列表。许多名称之间的差异很小,因此略有不同。我想找到一种匹配这些名称的方法。例如:
names <- c('jon smith','jon, smith','Jon Smith','jon smith et al','bob seger','bob, seger','bobby seger','bob seger jr.')
Run Code Online (Sandbox Code Playgroud)
我已经amatch
在stringdist
函数以及中进行了研究agrep
,但是所有这些都需要一个主名称列表,用于与另一个名称列表进行匹配。就我而言,我没有这样的主列表,因此我想通过识别具有高度相似模式的姓名从数据中创建一个主列表,以便我可以查看它们并确定它们是否是同一个人(在很多情况下,的情况下)。我想要一个新列中的输出,可以帮助我知道这些是可能的匹配,也许是基于Levenshtein距离之类的某种相似性得分。也许是这样的:
names match SimilarityScore
1 jon smith a 9
2 jon, smith a 8
3 Jon Smith a 9
4 jon smith et al a 5
5 bob seger b 9
6 bob, seger b 8
7 bobby seger b 7
8 bob seger jr. b 5
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?
我有一个文档数据集,我将其转换为矩阵并运行k-means聚类,如何绘制图形以显示具有矩阵的聚类?
k<-5
kmeansResult<-kmeans(m3,k)
plot(m3, col = kmeansResult$cluster)
points(kmeansResult$centers, col = 1:5, pch = 8, cex = 5)
Run Code Online (Sandbox Code Playgroud)
编辑:我接受我的问题因相似而被关闭,但我认为答案为其他人提供了宝贵的知识,所以这应该是开放的。
我一直在玩下面的脚本:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import KMeans
from sklearn.metrics import adjusted_rand_score
import textract
import os
folder_to_scan = '/media/sf_Documents/clustering'
dict_of_docs = {}
# Gets all the files to scan with textract
for root, sub, files in os.walk(folder_to_scan):
for file in files:
full_path = os.path.join(root, file)
print(f'Processing {file}')
try:
text = textract.process(full_path)
dict_of_docs[file] = text
except Exception as e:
print(e)
vectorizer = TfidfVectorizer(stop_words='english')
X = vectorizer.fit_transform(dict_of_docs.values())
true_k = 3
model = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, n_init=1)
model.fit(X)
print("Top terms per …
Run Code Online (Sandbox Code Playgroud) 我需要在VAR1_STRUCTURED中实现值,而无需手动输入所有可能的VAR1值,因为我有50000个观察值,意味着50000个可能的情况.
Var1 Var1_Structured
125 Hollywood St. 125 Hollywood St.
125 Hllywood St. 125 Hollywood St.
125 Hollywood St 125 Hollywood St.
Target Store Target Store
Trget Stre Target Store
Target. Store Target Store
T argetStore Target Store
Walmart Walmart
Walmart Inc. Walmart
Wal marte Walmart
Run Code Online (Sandbox Code Playgroud)
而且还有很多价值......