python - Comment compter la fréquence des mots dans un document de développement d'API en anglais (tel qu'un document javadoc)?
迷茫
迷茫 2017-07-05 10:35:00
0
2
1096

Comme le titre, une fonction plus simple consiste à savoir comment compter la fréquence des mots d'un document de développement d'API en anglais ? (Le document peut être constitué de plusieurs fichiers html, ou il peut s'agir d'un fichier chm, pas d'un simple texte txt) ; Une exigence plus compliquée est que, comme le document de développement implique de nombreux noms de classes, noms de fonctions ou de méthodes, etc., les mots peuvent être connectés entre eux, et il est préférable de les séparer lors des statistiques

(Cela peut être séparé selon les règles de dénomination )

; Une exigence plus compliquée est que, parce que le simple fait de compter la fréquence des mots d'un document n'a pas beaucoup de signification pratique, comment retraiter les mots comptés :

    Éliminez certains mots simples qui ont peu de sens pour le développement, comme le, sont, à, est...
  • Analyser des noms professionnels liés à l'informatique, des mots ayant des significations spécifiques en programmation, ou des mots-clés de langages de programmation (impliquant différents langages​​correspondant au document
  • ) ;

  • Annoter l'explication des mots finaux analysés (chinois, via API tierce)...
Si vous développez des logiciels avec les fonctions ci-dessus, quelles technologies spécifiques sont nécessaires ?

Bienvenue pour proposer vos idées...

Eh bien, en fait, mon problème est que lorsque je lis un document en anglais, il y a trop de mots que je ne comprends pas, je dois souvent rechercher les mots, ce qui est trop inefficace s'il existe un outil qui peut statistiquement le faire. analyser le vocabulaire d'un document, vous pouvez vous familiariser grossièrement avec la signification du vocabulaire avant de lire le document pour améliorer l'efficacité et la dénomination est également utile lors du développement...

 ; Remarques de modification :

    Séparer les mots qui sont connectés entre eux n'est en effet pas une technologie de segmentation de mots, je l'ai déjà dit ;
  • Mon idée sur l'utilisation de l'apprentissage automatique mentionnée dans la question d'origine est la suivante : un logiciel avec apprentissage automatique lit de nombreux documents de développement de programmation, y découvre les termes professionnels et rend la mise en œuvre de l'ensemble de la fonction plus intelligente... Bien sûr, c'est juste mon imagination, ce n'est peut-être pas vrai, ne critiquez pas si vous ne l'aimez pas ;
  • Enfin, le problème que j'ai mentionné concernant la lecture de documents en anglais, tout le monde arrive à un stade où il ne peut pas le comprendre au début et son efficacité est faible. Qui ne sait pas que si vous lisez davantage, votre efficacité s'améliorera progressivement ? Tout le monde connaît la vérité...
  • Mais ce n'est pas le sujet de notre discussion

    , j'ai juste cette idée et je la propose à tout le monde pour en discuter

  • De plus, si la question que vous avez posée est fausse, vous pouvez laisser un message et je la modifierai. Ne pouvez-vous pas la voter ?
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(2)
世界只因有你

En préparation du concours d'entrée au troisième cycle, je n'ai pas écrit de code depuis longtemps, mais l'idée générale devrait être :

  1. Nettoyage et filtrage : pour le HTML, filtrez d'abord le contenu. Vous pouvez rédiger vos propres règles habituelles ou en trouver écrites par d'autres

  2. .
  3. Segmentation des mots : filtrez d'abord les mots à l'aide de délimiteurs communs tels que des espaces, puis recherchez les mots un par un selon les différentes conventions de dénomination linguistique

  4. Filtrer les mots courants : vous devriez pouvoir trouver des fichiers de mots anglais courants sur Internet et les faire correspondre

  5. WordCount : vous pouvez simplement utiliser Python pour implémenter vous-même le filtrage MapReduce, ou vous pouvez également utiliser Hadoop, Spark, etc.

Cela complète les statistiques de mots pour filtrer les mots simples. Concernant le comptage des mots liés à l'ordinateur, vous devez télécharger le fichier de données des mots liés à l'ordinateur en ligne et les faire correspondre directement. Si vous avez besoin de donner une explication, appelez Youdao ou Baidu Translate. Les API sont suffisantes, mais ces API peuvent avoir des limites supérieures et je ne les ai pas utilisées.

Les étapes ci-dessus ne prennent pas en compte les problèmes d'efficacité. Si vous devez prendre en compte des problèmes d'efficacité, vous devez utiliser certains algorithmes ou utiliser directement des bibliothèques de classes écrites par d'autres.

En ce qui concerne l'apprentissage automatique que vous avez mentionné, les exigences ici ne sont actuellement pas nécessaires et il n'est pas nécessaire de l'utiliser.


Enfin : je tiens toujours à dire que le moyen le plus rapide de comprendre un document est de lire plus de documents. Si vous continuez à lire, vous constaterez que la vitesse de lecture des documents deviendra de plus en plus rapide. Cependant, traiter cela comme un projet de formation peut être considéré comme une réalisation intéressante.

Réponse révisée à la question :
Le machine learning que vous avez mentionné est actuellement généralement supervisé et non supervisé, mais selon votre mention :


Un logiciel avec apprentissage automatique lit une grande quantité de documents de développement de programmation, découvre les termes professionnels qu'ils contiennent et rend la mise en œuvre de l'ensemble de la fonction plus intelligente...

    Si vous utilisez l'apprentissage supervisé, vous aurez certainement besoin du support des données de corpus, pourquoi ne pas utiliser directement la correspondance de chaînes pour l'implémenter ?
  1. Lorsque j'utilise l'apprentissage non supervisé, je suis encore un débutant. D'après ma compréhension, il semble que cela ne puisse obtenir que l'effet de clustering. Si vous souhaitez identifier automatiquement les termes informatiques, vous avez toujours besoin d'une annotation manuelle ou d'un support de données
  2. .

  3. Si vous allez plus loin, vous devez étudier attentivement la PNL
  4. Je pense que vous êtes intéressé par l'apprentissage automatique, mais je pense que ce n'est pas un bon projet pour pratiquer l'apprentissage automatique.
淡淡烟草味

Cela ne devrait pas être appelé segmentation de mots anglais. La segmentation de mots doit faire référence à la division par composants de phrase. Les noms de variables connectés entre eux peuvent être identifiés par des méthodes de dénomination courantes, telles que Camel-Case en majuscules et minuscules, les traits de soulignement séparés par des traits de soulignement, etc.

Vous pouvez trouver diverses bibliothèques de fractionnement de mots pour la segmentation des mots, et il devrait y en avoir beaucoup en Python. Téléchargez le lexique des noms professionnels informatiques, extrayez le mot et associez-le au lexique pour en comprendre le sens.

Mais en fait, même s'il est fait, cela ne facilitera pas nécessairement la lecture. Le simple fait de regarder les mots a un peu de courbure pour sauver le pays, et il est très probable que vous ne puissiez pas lire. ça du tout. Le vocabulaire des articles informatiques n'est pas très vaste. Une fois familier, il sera familier deux fois. Il est préférable d'optimiser l'expérience de recherche de mots en combinant la solution Collins avec le dictionnaire Macmillan, MDict ou Oulu. . Chrome peut également installer Saladic pour rechercher des mots.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal