我有两大套数据。两组都是结构化编码系统的一种形式,用于根据他们的职业对人群进行分类。这两组数据没有通用标识符。除了包含唯一标识符的列之外,每个表都具有所述标识符的描述,但是尽管它们可能描述了类似的内容,但描述并不相同。
如何创建连接两组数据的表,而不必返回并手动尝试弄清楚如何在两个标识符之间建立连接。我不确定这是否可以在Access或SQL上完成。如果有办法做到这一点,我想知道那里有什么软件。
以下是一些示例数据:
Table 1:
Z Identifier DescriptionA
162000 Pharmacist
3123566 Electronic Repairman
143246 Banker
8444455 Doctor
Table 2:
Q Identifier DescriptionB
XX134556 COPY/PRINT/SCAN EQUIP
666Q1224 DRUGS
722WWYZ Financial Svc
8456435T Medical Services
15666PP Health Services
期望的输出:
Table 3:
Z Identifier DescriptionA Q Identifier DescriptionB
162000 Pharmacist 666Q1224 DRUGS
3123566 Electr Repairman XX134556 COPY/PRINT/SCAN EQUIP
143246 Banker 722WWYZ Financial Svc
8444455 Doctor 8456435T Medical Services
答案 0 :(得分:0)
Table 1:
Z Identifier DescriptionA
162000 Pharmacist
3123566 Electronic Repairman
143246 Banker
8444455 Doctor
Table 2:
Q Identifier DescriptionB
XX134556 COPY/PRINT/SCAN EQUIP
666Q1224 DRUGS
722WWYZ Financial Svc
8456435T Medical Services
15666PP Health Services
Output:
Z Identifier DescriptionA Q Identifier DescriptionB
162000 Pharmacist 666Q1224 DRUGS
3123566 Electr Repairman XX134556 COPY/PRINT/SCAN EQUIP
143246 Banker 722WWYZ Financial Svc
8444455 Doctor 8456435T Medical Services
答案 1 :(得分:0)
您习惯使用的常规工具(如Access,Excel和SQL)只能通过比较单词的含义和用法来实现目标。
换句话说(原谅双关语),为了做到这一点,你需要某种natural language processing toolkit (NLPT)。除此之外,你还需要一些关于如何编程的知识,因为我不认为存在前端接口可以通过填写一些表单来给出你想要的输出,只给出你列出的输入。 / p>
因此,考虑到这一点,为了解决您的问题(我假设您知道如何编程并可以使用您选择的语言选择NLPT),您需要执行以下操作:
path_similarity
类型的函数,以排列方式比较DescriptionA和DescriptionB。例如path_similarity('animal.definition1', 'dog.definition1')
应该返回一个较高的值,比如说.60,而path_similarity('animal.definition1', 'book.definition1')
应该返回一个较低的值,比如.10。path_similarity
高于某个值(由您自行决定),请将这两个项目连接在一起,并将它们作为单行附加到结果表中,同时将它们从各自的表中删除。继续执行此操作,直到列表用尽的DescriptionA大于与DescriptionB的某个相似性。然后使用表1和表2中剩余的行执行其他操作。这应该都很容易以编程方式完成。您可能会发现在某些地方使用此方法无法获得正确匹配,因为您随机选择了两个单词进行比较。因此,您可能希望找到除排列之外的其他算法,或许可以查看每个数据的path_similarity
的统计数据,并更恰当地采取行动。
此外,您可能希望允许配对两个以上的单词。例如; "伐木工人","砍伐树木"和"树砍刀"更有意义的是,在创建另外两列的情况下将其分组在一行中,而不是将其中一列扔出去,而这些列可能会没有一对。我刚刚在本段中列出的所有问题 我确定 不是新问题,您可以在互联网上搜索以解决这些问题。祝你好运!