回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>对于数据集的每个概念,我都存储了相应的wikipedia类别。例如,考虑以下5个概念及其对应的wikipedia类别。在</p>
<ul>
<li>高甘油三酯血症:<code>['Category:Lipid metabolism disorders', 'Category:Medical conditions related to obesity']</code></li>
<li>酶抑制剂:<code>['Category:Enzyme inhibitors', 'Category:Medicinal chemistry', 'Category:Metabolism']</code></li>
<li>旁路手术:<code>['Category:Surgery stubs', 'Category:Surgical procedures and techniques']</code></li>
<li>珀斯:<code>['Category:1829 establishments in Australia', 'Category:Australian capital cities', 'Category:Metropolitan areas of Australia', 'Category:Perth, Western Australia', 'Category:Populated places established in 1829']</code></li>
<li>气候:<code>['Category:Climate', 'Category:Climatology', 'Category:Meteorological concepts']</code></li>
</ul>
<p>如您所见,前三个概念属于医学领域(而其余两个术语不是医学术语)。在</p>
<p>更确切地说,我想把我的概念分为医学和非医学。然而,仅仅用范畴来划分概念是非常困难的。例如,尽管<code>enzyme inhibitor</code>和{<cd7>}这两个概念属于医学领域,但它们的范畴却大不相同。在</p>
<p>因此,我想知道是否有方法获得类别的<code>parent category</code>(例如,<code>enzyme inhibitor</code>和{<cd7>}的类别属于<code>medical</code>父类别)</p>
<p>我当前正在使用<code>pymediawiki</code>和<code>pywikibot</code>。然而,我并不局限于这两个库,我也很高兴有解决方案使用其他库。在</p>
<p><strong>编辑</strong></p>
<p>根据@IlmariKaronen的建议,我也使用了<code>categories of categories</code>,结果如下(靠近<code>category</code>的小字体是<code>categories of the category</code></em>)。
<a href="https://i.stack.imgur.com/oSPla.png" rel="noreferrer"><img src="https://i.stack.imgur.com/oSPla.png" alt="enter image description here"/></a></p>
<p>然而,我仍然无法找到一种方法来使用这些类别的细节来决定一个给定的术语是医学的还是非医学的。在</p>
<p>此外,正如@IlmariKaronen所指出的那样,使用<code>Wikiproject</code>的细节可能是潜在的。然而,似乎<code>Medicine</code>wikiproject似乎没有所有的医学术语。因此,我们还需要检查其他wikiprojects。在</p>
<p><strong>编辑:</strong>
我当前从wikipedia概念中提取类别的代码如下。可以使用<code>pywikibot</code>或<code>pymediawiki</code>来完成此操作,如下所示。在</p>
<ol>
<li><p>使用库<code>pymediawiki</code></p>
<p>以pw格式导入mediawiki</p>
<pre><code>p = wikipedia.page('enzyme inhibitor')
print(p.categories)
</code></pre></li>
<li><p>使用库<code>pywikibot</code></p>
<pre><code>import pywikibot as pw
site = pw.Site('en', 'wikipedia')
print([
cat.title()
for cat in pw.Page(site, 'support-vector machine').categories()
if 'hidden' not in cat.categoryinfo
])
</code></pre></li>
</ol>
<p>类别的分类也可以按照@IlmariKaronen的答案中所示的方式进行。在</p>
<p>如果您正在寻找一个较长的测试概念列表,我已经在下面提到了更多的例子。在</p>
<pre><code>['juvenile chronic arthritis', 'climate', 'alexidine', 'mouthrinse', 'sialosis', 'australia', 'artificial neural network', 'ricinoleic acid', 'bromosulfophthalein', 'myelosclerosis', 'hydrochloride salt', 'cycasin', 'aldosterone antagonist', 'fungal growth', 'describe', 'liver resection', 'coffee table', 'natural language processing', 'infratemporal fossa', 'social withdrawal', 'information retrieval', 'monday', 'menthol', 'overturn', 'prevailing', 'spline function', 'acinic cell carcinoma', 'furth', 'hepatic protein', 'blistering', 'prefixation', 'january', 'cardiopulmonary receptor', 'extracorporeal membrane oxygenation', 'clinodactyly', 'melancholic', 'chlorpromazine hydrochloride', 'level of evidence', 'washington state', 'cat', 'newyork', 'year elevan', 'trituration', 'gold alloy', 'hexoprenaline', 'second molar', 'novice', 'oxygen radical', 'subscription', 'ordinate', 'approximal', 'spongiosis', 'ribothymidine', 'body of evidence', 'vpb', 'porins', 'musculocutaneous']
</code></pre>
<p>对于一个很长的列表,请检查下面的链接。<a href="https://docs.google.com/document/d/1BYllMyDlw-Rb4uMh89VjLml2Bl9Y7oUlopM-Z4F6pN0/edit?usp=sharing" rel="noreferrer">https://docs.google.com/document/d/1BYllMyDlw-Rb4uMh89VjLml2Bl9Y7oUlopM-Z4F6pN0/edit?usp=sharing</a></p>
<p><strong>注意:我不希望解决方案100%有效(如果所提出的算法能够检测到对我来说足够多的医学概念)</strong></p>
<p>如果需要,我很乐意提供更多细节。在</p>