JP2017142640A - Similar document recommendation system, similar document recommendation method, and similar document recommendation program - Google Patents
Similar document recommendation system, similar document recommendation method, and similar document recommendation program Download PDFInfo
- Publication number
- JP2017142640A JP2017142640A JP2016023297A JP2016023297A JP2017142640A JP 2017142640 A JP2017142640 A JP 2017142640A JP 2016023297 A JP2016023297 A JP 2016023297A JP 2016023297 A JP2016023297 A JP 2016023297A JP 2017142640 A JP2017142640 A JP 2017142640A
- Authority
- JP
- Japan
- Prior art keywords
- api
- document
- similarity
- unit
- similar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、類似文書推薦システム、類似文書推薦方法および類似文書推薦プログラムに関する。 The present invention relates to a similar document recommendation system, a similar document recommendation method, and a similar document recommendation program.
近年のネットワークの高速化とウェブブラウザの普及により、インターネットを経由して所定の処理を提供するAPI(Application-Program Interface)が広く普及している。このAPIは、インターネット経由で或るサーバ上にあるプログラムや管理データなどを、他のサーバや端末などから呼び出して利用するための手順やデータ形式などを定めた規約であり、コンピュータプログラムの機能を呼び出して利用するための規約であるAPIに擬えて呼ばれている。 With the recent increase in network speed and the spread of web browsers, APIs (Application-Program Interface) that provide predetermined processing via the Internet have become widespread. This API is a rule that defines the procedure and data format for calling and using programs and management data on a server via the Internet from other servers and terminals. It is called by imitating an API that is a convention for calling and using.
開発者は、APIを活用することによって、容易にエンドユーザ向けアプリケーションを開発することができる。またAPIの提供者は、このAPIを活用したアプリケーションにより、自社のサービスやコンテンツをエンドユーザ等に訴求することができる。例えば通信キャリアは、ネットワーク機能やオペレーション機能をAPIとしてエンドユーザ向けアプリケーションの開発を促し、自社の通信サービスをエンドユーザ等に訴求することができる。 Developers can easily develop applications for end users by using APIs. In addition, API providers can appeal their services and content to end users, etc., using applications that utilize this API. For example, a communication carrier can promote development of an application for an end user by using a network function or an operation function as an API, and can appeal its communication service to an end user or the like.
また近年では、スマートフォン等のデバイスが多様化し、また市場がグローバル化して、ニッチな領域への事業者の新規参入が容易になった。このような中で、APIを収益確保可能な形で提供することが重要である。これらサービスの実現と収益確保のためには、事業者間でAPIの連携(マッシュアップ)が容易であることが望ましい。APIの連携を可能とするには、APIの技術標準を定め、これに準拠した標準APIに統一することが望まれる。 In recent years, devices such as smartphones have diversified, and the market has become global, making it easier for businesses to enter new niche areas. Under such circumstances, it is important to provide APIs in a form that can secure profits. In order to realize these services and secure profits, it is desirable that APIs (mashups) be easy between operators. To enable API linkage, it is desirable to define API technical standards and unify them into standard APIs that conform to them.
例えば非特許文献1には、この標準APIのモデルについて記載されている。この非特許文献1の発行元であるTM(TeleManagement) FORUMは、相互運用のできる情報通信システムのネットワーク管理を実現するため、業界標準の検討と、それに基づく製品化の促進、業界の活性化を目的に設立された非営利の業界団体であり、複数事業者を跨ったサービスを提供するための標準APIについて検討している。
For example, Non-Patent
サービス事業者などによってAPIが提供されているサービスAについて、サービスXのAPI_XをサービスAのAPI_Aに合わせたい場合がある。すなわちAPIの仕様を共通化し、標準APIに統一するという需要が存在する。これにより、サービスAの相互運用性が高まり、より多くのネットワーク事業者やクラウド事業者に跨がってサービスAを提供することができる。そのためには、入力したサービスXのAPI文書に対し、サービスAのAPI群のうち同一目的で使用するAPI文書を選定して推薦することが考えられる。 For service A for which an API is provided by a service provider or the like, it may be desired to match API_X of service X with API_A of service A. In other words, there is a demand for standardizing API specifications and unifying them into standard APIs. As a result, the interoperability of the service A is improved, and the service A can be provided across more network operators and cloud operators. For this purpose, it is conceivable to select and recommend an API document to be used for the same purpose from the API group of service A for the input service X API document.
しかしながら、APIの共通化にあたっては、同一目的で用いるAPIの選定が必要だが、現状は手作業でAPIの仕様文書を読み、各APIをマッチングしており、多大な時間を要している。 However, in order to standardize APIs, it is necessary to select APIs to be used for the same purpose, but at present, it takes a lot of time to manually read API specification documents and match each API.
本発明は、前記した問題を解決し、サービスに係るAPIと同一目的のものを、異なるサービスに係るAPIから短時間で選定可能とすることを課題とする。 An object of the present invention is to solve the above-described problems and to select an API having the same purpose as an API related to a service from APIs related to different services in a short time.
請求項1に記載の発明では、複数の第1APIを説明する文章を有する複数のAPI情報を保有する保有部と、第2APIを説明する文章を有するAPI文書の入力を受け付ける入力部と、前記API文書と前記API情報との類似度を算出する類似度算出部と、前記類似度算出部が算出した類似度に基づき、前記第2APIに類似する一または複数の第1APIを推薦する推薦部と、を備えることを特徴とする類似文書推薦システムとした。 In the first aspect of the present invention, a holding unit that holds a plurality of API information having a sentence that describes a plurality of first APIs, an input unit that receives an input of an API document having a sentence that describes a second API, and the API A similarity calculator that calculates the similarity between the document and the API information, a recommendation unit that recommends one or more first APIs similar to the second API based on the similarity calculated by the similarity calculator, A similar document recommendation system characterized by comprising:
このようにすることで、サービスに係る第2APIと同一目的のものを、異なるサービスに係る第1APIから短時間で選定することができる。 By doing in this way, the thing with the same purpose as 2nd API which concerns on a service can be selected from 1st API which concerns on a different service in a short time.
請求項2に記載の発明では、前記類似度算出部は、教師データを用いて前記API文書が有している文章を補正する、ことを特徴とする請求項1に記載の類似文書推薦システムとした。
The invention according to
このようにすることで、表記揺れしている用語を正規化して、類似度計算の精度を向上させることができる。 In this way, it is possible to normalize the terms that are notating and improve the accuracy of similarity calculation.
請求項3に記載の発明では、前記API文書は、リクエストパラメータ例または/およびレスポンスパラメータ例を有しており、前記入力部は、前記API文書に含まれるリクエストパラメータ例およびレスポンスパラメータ例を削除する、ことを特徴とする請求項1に記載の類似文書推薦システムとした。
In the invention according to claim 3, the API document has a request parameter example and / or a response parameter example, and the input unit deletes the request parameter example and the response parameter example included in the API document. The similar document recommendation system according to
このようにすることで、文書ベクトルのノイズとなるリクエストパラメータ例やレスポンスパラメータ例を削除して、類似度計算の精度を向上させることができる。 In this way, it is possible to delete the request parameter example and the response parameter example that cause noise in the document vector, and improve the accuracy of similarity calculation.
請求項4に記載の発明では、前記API文書は、数字を含む文字列または単語を有しており、前記入力部は、前記API文書が有している数字を含む文字列または単語を削除する、ことを特徴とする請求項1に記載の類似文書推薦システムとした。
In the invention according to
このようにすることで、文書ベクトルのノイズとなるリクエストパラメータ例における数字を含む文字列または単語を削除して、類似度計算の精度を向上させることができる。 In this way, it is possible to delete the character string or word including a number in the request parameter example that causes noise in the document vector, and improve the accuracy of similarity calculation.
請求項5に記載の発明では、前記API文書は、キャメルケースまたはスネークケースの文字列を含んでおり、前記入力部は、前記API文書が有しているキャメルケースまたはスネークケースの文字列を単語に分解する、ことを特徴とする請求項1に記載の類似文書推薦システムとした。
In the invention according to
このようにすることで、文書ベクトルのノイズとなるキャメルケースまたはスネークケースの文字列を、文書ベクトルの構成要素となる単語に分解して、類似度計算の精度を向上させることができる。 By doing so, the character string of the camel case or snake case that becomes the noise of the document vector can be decomposed into words that become the constituent elements of the document vector, and the accuracy of the similarity calculation can be improved.
請求項6に記載の発明では、前記推薦部は、第1APIの推薦結果に対するユーザの正誤判定を保存する、ことを特徴とする請求項1に記載の類似文書推薦システムとした。 According to a sixth aspect of the present invention, in the similar document recommendation system according to the first aspect, the recommendation unit stores a user's correctness / incorrectness determination for the recommendation result of the first API.
このようにすることで、正誤判定結果は次回の類似度計算に反映するので、類似度計算の精度を次第に向上させることができる。 By doing in this way, the correctness determination result is reflected in the next similarity calculation, so that the accuracy of the similarity calculation can be gradually improved.
請求項7に記載の発明では、複数の第1APIを説明する文章を有する複数のAPI情報を保有するステップと、第2APIを説明する文章を有するAPI文書の入力を受け付けるステップと、前記API文書と前記API情報との類似度を算出するステップと、前記類似度に基づき、前記第2APIに類似する一または複数の第1APIを推薦するステップと、を含むことを特徴とする類似文書推薦方法とした。
In the invention according to
このようにすることで、サービスに係る第2APIと同一目的のものを、異なるサービスに係る第1APIから短時間で選定することができる。 By doing in this way, the thing with the same purpose as 2nd API which concerns on a service can be selected from 1st API which concerns on a different service in a short time.
請求項8に記載の発明では、複数の第1APIを説明する文章を有する複数のAPI情報を保有する保有手段、第2APIを説明する文章を有するAPI文書の入力を受け付ける入力手段、前記API文書と前記API情報との類似度を算出する類似度算出手段、前記類似度算出手段が算出した類似度に基づき、前記第2APIに類似する一または複数の第1APIを推薦する推薦手段、としてコンピュータを機能させるための類似文書推薦プログラムとした。 In the invention according to claim 8, holding means for holding a plurality of API information having a sentence explaining a plurality of first API, input means for receiving an input of an API document having a sentence explaining a second API, the API document, The computer functions as a similarity calculation unit that calculates a similarity with the API information, and a recommendation unit that recommends one or more first APIs similar to the second API based on the similarity calculated by the similarity calculation unit. This is a similar document recommendation program.
このようにすることで、サービスに係る第2APIと同一目的のものを、異なるサービスに係る第1APIから短時間で選定することができる。 By doing in this way, the thing with the same purpose as 2nd API which concerns on a service can be selected from 1st API which concerns on a different service in a short time.
本発明によれば、サービスに係るAPIと同一目的のものを、異なるサービスに係るAPIから短時間で選定可能とすることができる。 According to the present invention, an API having the same purpose as an API related to a service can be selected from APIs related to different services in a short time.
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。 Next, modes for carrying out the present invention (referred to as “embodiments”) will be described in detail with reference to the drawings as appropriate.
APIの仕様を共通化して統一することにより、サービスの相互運用性が高まり、より多くのネットワーク事業者やクラウド事業者に跨がってサービスを提供することができる。一方、既存のサービスは、共通APIに準拠しない独自APIを既に公開している場合があり、共通API化するにはサービス事業者システムやネットワーク事業者システムの改修が必要になる。
図5(a),(b)は、API共通化の目的を示す図であり、うち図5(a)は、API共通化前における状態を示す図である。
サービス事業者システム1aは、API_Xによってネットワーク事業者システム2aにサービスを提供し、API_Yによってネットワーク事業者システム2bにサービスを提供し、API_Zによってクラウド事業者システム2cにサービスを提供している。つまり、これらAPI_X、API_Y、API_Zには相互に異なっている。つまりサービス事業者システム1aと、ネットワーク事業者システム2a,2bやクラウド事業者システム2cとの接続は困難である。
By standardizing and unifying API specifications, service interoperability is improved, and services can be provided across more network operators and cloud operators. On the other hand, existing services may already have their own APIs that do not conform to the common API, and the service provider system or the network provider system needs to be modified to make it a common API.
5 (a) and 5 (b) are diagrams showing the purpose of API sharing, and FIG. 5 (a) is a diagram showing a state before API sharing.
The service provider system 1a provides services to the
図5(b)は、API共通化後における状態を示す図である。
サービス事業者システム1aは、API_Aによってネットワーク事業者システム2a,2bとクラウド事業者システム2cにサービスを提供している。更に、他のサービス事業者システム1bも、API_Aによってネットワーク事業者システム2a,2bとクラウド事業者システム2cにサービスを提供している。つまり、このシステムは、APIを共通化している。
API共通化により、サービス事業者システム1aは、サービスの拡大時にネットワーク事業者システム2a,2bやクラウド事業者システム2cとの接続が容易となる。他のサービス事業者システム1bなどは、サービスへの新規参入が容易となる。また、各サービス事業者システム1a,1bは、新規顧客の獲得が容易となる。
更にネットワーク事業者やラウド事業者は、市販品活用によるコスト削減を図ることができる。
しかし、サービス事業者システム1aやネットワーク事業者システム2aが、既存の処理部を改修してAPI_XをAPI_Aに共通化するには、多大な移行工数が掛かる。そこで、共通API化のために、メディエータ(後記する図6参照)と呼ばれるAPI変換装置を用いることが多い。
FIG. 5B is a diagram showing a state after API sharing.
The service provider system 1a provides services to the
By sharing the API, the service provider system 1a can be easily connected to the
Furthermore, network operators and loud operators can reduce costs by using commercially available products.
However, in order for the service provider system 1a and the
図6は、比較例のメディエータ4による共通API化を示す構成図である。
メディエータ4は、API変換部45と、API入力部41,44と、API出力部42,43と、シナリオ入力部46と、API変換シナリオ47とを含んで構成される。ユーザは、シナリオ入力部46を介してAPI変換シナリオ47を予め登録する。ネットワーク事業者システム2は、既存のサービスXに係るAPI_X仕様のAPIをリクエストする。サービス事業者システム1は、共通化されたサービスAに係るAPI_A仕様のAPIを提供する。このメディエータ4は、API変換シナリオ47に基づいてAPI_XをAPI_Aに変換してサービス事業者システム1に出力すると共に、API_AをAPI_Xに変換してネットワーク事業者システム2に出力する。
FIG. 6 is a configuration diagram showing common API conversion by the
The
ネットワーク事業者システム2は、メディエータ4を介してAPI_X仕様によるコマンドをサービス事業者システム1に送信する。API入力部44は、ネットワーク事業者システム2から送信されたAPIリクエストを受け付け、API変換部45は、このAPIリクエストをAPI変換シナリオ47に基づいてAPI_A仕様に変更する。API出力部43は、変換されたAPIリクエストをサービス事業者システム1に出力する。
The
サービス事業者システム1は、APIリクエストに基づく処理を実行したのち、APIレスポンスをネットワーク事業者システム2に送信する。サービス事業者システム1が送信するAPIレスポンスは、メディエータ4を介してネットワーク事業者システム2に送信される。
API入力部41は、サービス事業者システム1から送信されたAPI_A仕様のAPIレスポンスを受け付け、API変換部45は、このAPIレスポンスをAPI変換シナリオ47に基づいてAPI_X仕様に変更する。API出力部42は、変換されたAPIレスポンスを出力する。
これにより、API_X仕様のネットワーク事業者システム2は、API_A仕様のサービス事業者システム1で動作可能となる。つまり、ネットワーク事業者システム2は、メディエータ4によって共通API化される。
The
The
As a result, the API_X specification
メディエータ4の実装にあたっては、API変換シナリオ47を予め作成して、シナリオ入力部46を介して入力しておく必要がある。このとき、メディエータ4のユーザは、既存サービスであるAPI_X仕様を紐解いたうえで、API_A仕様に含まれる各APIにマッチングさせる必要があり、API変換シナリオ47には多大な時間と工数とを要する。本実施形態の推薦装置は、API変換シナリオ47の作成を省力化すべく、APIを自動マッチングし、API変換シナリオ47の生成をサポートする。
In implementing the
図1は、本実施形態におけるシステムの構成図である。
メディエータ4は、API変換部45と、API入力部41,44と、API出力部42,43と、シナリオ入力部46と、API変換シナリオ47とを含んで構成される。ユーザは、推薦装置5によってAPIの推薦を受けてAPI変換シナリオ47を作成し、作成したAPI変換シナリオ47をメディエータ4のシナリオ入力部46により登録する。
推薦装置5は、APIドキュメント入力部51、APIマッチング部52、API情報保有部53、API推薦部54を含んで構成される。
APIドキュメント入力部51はユーザが入力するAPI文書6を受け付け、APIマッチング部52は、APIをマッチングする。API推薦部54は、ユーザにAPIを推薦する。API情報保有部53は、共通化APIに関する情報を保有する。この推薦装置5は、後記する図2と図3にて詳細に説明する。
FIG. 1 is a configuration diagram of a system in the present embodiment.
The
The
The API
ネットワーク事業者システム2は、既存のサービスXに係るAPI_X仕様のAPIをリクエストする。サービス事業者システム1は、共通化されたサービスAに係るAPI_A仕様のAPIを提供する。このメディエータ4は、API_X仕様のAPIリクエストをAPI_A仕様に変換してサービス事業者システム1に出力すると共に、API_A仕様のAPIレスポンスをAPI_X仕様に変換してネットワーク事業者システム2に出力する。
The
ネットワーク事業者システム2は、メディエータ4を介してAPI_X仕様によるコマンドをサービス事業者システム1に送信する。API入力部44は、ネットワーク事業者システム2から送信されたAPIリクエストを受け付け、API変換部45は、このAPIリクエストをAPI変換シナリオ47に基づいてAPI_A仕様に変更する。API出力部43は、変換されたAPIリクエストをサービス事業者システム1に出力する。
サービス事業者システム1は、APIリクエストに基づく処理を実行したのち、APIレスポンスをネットワーク事業者システム2に送信する。サービス事業者システム1が送信するAPIレスポンスは、メディエータ4を介してネットワーク事業者システム2に送信される。
The
The
API入力部41は、サービス事業者システム1から送信されたAPI_A仕様のAPIレスポンスを受け付け、API変換部45は、このAPIレスポンスをAPI変換シナリオ47に基づいてAPI_X仕様に変更する。API出力部42は、変換されたAPIレスポンスを出力する。
The
図2は、推薦装置5の詳細を示す図である。
推薦装置5は、図1に示したAPIドキュメント入力部51、APIマッチング部52、API情報保有部53、API推薦部54に加えて更に、正誤判定結果部55、教師データ保有部56を含んで構成される。APIドキュメント入力部51は、受付部57と加工部58とを含んで構成される。APIマッチング部52は、類似度算出部59を含んで構成される。API情報保有部53は、予め比較先となるサービスAに係るAPI_A(第1API)の仕様であるAPI情報を保有している。このAPI情報は、複数のAPIを説明する文章を含んでいる。
ユーザが推薦装置5に比較したいAPI文書の文章全体とパラメータ情報の2つを入力することで、推薦装置5は、API文書間の類似度を算出し、同一目的で用いるAPIをユーザに推薦する。
FIG. 2 is a diagram showing details of the
In addition to the API
When the user inputs the entire text of the API document to be compared with the
受付部57は、APIドキュメント入力部51の一部であり、ユーザが入力したサービスXに係るAPI_X(第2API)の仕様のうち、1または複数のAPIの仕様が記載されたAPI文書6(API情報)の入力を受け付ける。なお、図2ではAPI文書6のことを、APIドキュメントと記載している。
受付部57は、API文書6の文章全体と、リクエストパラメータやレスポンスパラメータを有する文章の2種類の受付を許容する。ただしAPI文書6の文章全体の受付は必須とする。API文書6の文章全体が入力された場合は、API推薦までを実施し、パラメータの推薦は行わない。ユーザが受付部57に入力するAPIは、個々に一つずつ入力してもよいし、あるAPI群をまとめて入力してもよい。なお、受付部57は、リクエストパラメータ例やレスポンスパラメータ例が含まれるAPI文書6を受け付けることができる。
The accepting
The receiving
加工部58は、APIドキュメント入力部51の一部であり、API文書6のうち、リクエストパラメータ例やレスポンスパラメータ例が記載された部分を削除することで、同一目的で用いるAPIの選定精度を高めている。リクエストパラメータ例やレスポンスパラメータ例は、API文書6の固有表現であり、既存の文書類似度の算出に対するノイズとなるためである。具体的に加工部58は、JSON(JavaScript(登録商標) Object Notation)形式やXML(eXtensible Markup Language)形式で記述されている部分と、数字を含む単語の文字列とを判定して削除する。JSON形式やXML形式の判定は、中括弧{}や山括弧<>で括られる部分を見つけることにより行う。加工部58の処理により、類似度算出部59の演算におけるノイズを除去することができる。
The
類似度算出部59は、API文書6と、API情報保有部53が保有する各API情報との類似度を算出する。類似度算出部59は、教師データ保有部56に保有した業界特有用語集561の類義語セットを用いて単語の置換を行うことで、サービス固有の表現の揺れを吸収してAPI選定の精度を高める。更に類似度算出部59は、業界特有用語集561における単語と業務区分との対応に基づき、その区分に当てはまるAPI群を全て候補として提示する。類似度算出部59は、ベクトル生成にてAPI文書の内容を正確に表すため、他のドキュメントに現れていない、このドキュメント特有の単語に対して、より大きな重み付けを行う。類似度算出部59は、文章を単語に分解し、単語ごとの出現数を要素に文章ベクトルを生成し、2つの文章に係るベクトルの大きさや向きの差を、2つの文章の類似度として扱い、類似度上位のAPIを複数個抽出する。なお、類似度算出部59は、類似度が閾値以上であり、かつAPI名が同一のものは、優先的にマッチング先に選定してもよい。
The
API推薦部54は、類似度算出部59の算出の結果として、マッチング先として推薦するAPI候補群を、ユーザ端末の画面上(表示装置)に提示する。API推薦部54は更に、API候補ごとに正誤判定結果をユーザに入力してもらい、正誤判定の結果を正誤判定結果部55に格納する。正誤判定結果部55に保有される判定結果に基づいて教師データ保有部56のデータが更にアップデートされることで、類似度算出部59の精度が向上する。このようにすることで、類似度算出部59の算出精度は、API推薦を繰り返すほど向上する。
As a result of the calculation by the
API情報保有部53(保有部)は、マッチング先となるサービスAに係るAPI_A(第1API)の仕様情報を保有するデータベースである。API仕様7は、各APIを説明する文章71と、リクエストパラメータ72と、レスポンスパラメータ73の組合せを複数含んで構成される。なおAPI情報保有部53は、マッチング先となる複数のサービスに係るAPI仕様情報を保有してもよい。API情報保有部53は、例えばTMF(TeleManagement FORUM)のAPI仕様情報や、AWS(Amazon(登録商標) Web Service)のAPI仕様情報を保有してもよい。
教師データ保有部56は、業界特有用語集561を保有する。具体的には、「所定業務に特有のキーワード」を有する。例えば業務区分を「計画・建設系業務」「保全系業務」「課金系業務」に分類した、分類された各業務ごとの区分に、それぞれ100個のAPI群が分類されている場合を考える。この場合、業務ごとの区分情報に依らずにAPIを推薦するならば、300個のAPI群から探索する必要がある。
しかし、例えばAPIの文書中に単語“Alarm”が多く出現する場合に「保全系業務で使うAPI」であると推測すると、マッチング先APIの推薦にあたり、候補を「保全系業務で使うAPI群」の100個に絞り込むことができる。これにより、より正解のAPIを見つけやすくなる。このような対応関係は、例えばTMFのAPI仕様情報からキーワードを抽出するとよい。教師データ保有部56の各データは、類似度算出部59に参照され、類似度の重み付けに活用される。
The API information holding unit 53 (holding unit) is a database that holds specification information of API_A (first API) related to the service A as a matching destination. The
The teacher
However, for example, if the word “Alarm” appears frequently in the API document, assuming that it is an “API to be used for maintenance work”, the candidate is “API group to be used for maintenance work” in recommending the matching destination API. Can be narrowed down to 100. This makes it easier to find the correct API. For such correspondence, for example, keywords may be extracted from API specification information of TMF. Each data of the teacher
正誤判定結果部55は、ユーザによる正誤判定結果を保有する。例えばcloudn(登録商標)の“Template”は、AWSの“Image”と同等であることが分かっているが、機械的に類似度を算出するだけでは同等とみなされない。手作業で判断した結果として“Template”は“Image”と同等であるというルールを生成して保有するとよい。
The correctness / incorrectness
図3は、API文書6の例を示す図である。
API文書6は、API仕様に関する文書であり、APIの名称を保有するAPI名61、APIに係る仕様を説明するAPI説明62、リクエストパラメータ63、レスポンスパラメータ64、リクエストパラメータ例65、レスポンスパラメータ例66を含んで構成される。リクエストパラメータ例65には、リクエストパラメータ63の例が示されている。レスポンスパラメータ例66には、レスポンスパラメータ64の例が示されている。
API名61が保有するAPIの名称は、複合語であるキャメルケースやスネークケースで記載されることが多い。ここでキャメルケースとは、複数の単語間のスペースを詰めて次の語を大文字から始めた文字列である。スネークケースとは、複数の単語間のスペースをアンダースコアに置き換えた文字列である。これは一つの文字列トークンのみがAPIの名称として認められるという実装上の制約による。
例えば“alarm name”をキャメルケースで記載すると“AlarmName”であり、スネークケースで記載すると“alarm_name”となる。よって、文書ベクトルのノイズとなるキャメルケースやスネークケースの文字列を各単語に分解することで、文書ベクトルを構成する単語を増やして類似度計算の精度を向上させることができる。
リクエストパラメータ例65やレスポンスパラメータ例66は、JSON形式やXML形式で記載され、または数字を含む文字列または単語によって記載されていることが多い。ここで数字を含む文字列または単語とは、例えば“id=1234”などをいう。ここで“1234”という数字はあくまで例であり、APIの利用目的を知るためには不要な要素である。よって、中括弧{}や山括弧<>で括られたJSON形式やXML形式を判定して削除し、数字を含む文字列または単語を判定して削除することにより、リクエストパラメータ例65やレスポンスパラメータ例66を削除することができる。
FIG. 3 is a diagram illustrating an example of the
The
The API name possessed by the
For example, “alarm name” is described as “AlarmName” when described in a camel case, and “alarm_name” when described as a snake case. Therefore, by decomposing the character string of the camel case or snake case that causes noise in the document vector into each word, the number of words constituting the document vector can be increased and the accuracy of similarity calculation can be improved.
The request parameter example 65 and the response parameter example 66 are often described in JSON format or XML format, or are often described by character strings or words including numbers. Here, the character string or word including a number means, for example, “id = 1234”. Here, the number “1234” is merely an example, and is an unnecessary element for knowing the purpose of use of the API. Therefore, by determining and deleting the JSON format or XML format enclosed in braces {} and angle brackets <> and determining and deleting character strings or words including numbers, request parameter example 65 and response parameter Example 66 can be deleted.
図4は、ドキュメント加工処理と類似度算出処理を示すフローチャートであり、適宜図2などを参照して説明する。
ユーザが入力したAPI文書6を受付部57が受け付けると、図4に示す処理が開始する。受付部57は、API文書6における文章全体と、これにリクエストパラメータ63やレスポンスパラメータ64を有する文章の2種類を受け付けることができる。ユーザは、個々に一つずつのAPIを入力してもよく、或るAPI群をまとめて入力してもよい。
FIG. 4 is a flowchart showing the document processing process and the similarity calculation process, which will be described with reference to FIG.
When the accepting
API文書6には、API説明62とリクエストパラメータ63とレスポンスパラメータ64に加え、リクエストパラメータ例65とレスポンスパラメータ例66も記載されている。加工部58は、入力されたAPI文書6のうちリクエストパラメータ例65とレスポンスパラメータ例66に係る記載を削除する(ステップS10)。これにより、類似度算出部59の処理におけるノイズを除去することができる。
類似度算出部59は、教師データ保有部56に基づき、API文書6の文章を補正する(ステップS11)。具体的に言うと、類似度算出部59は、入力されたサービスXのAPIドキュメントと、比較先となるサービスAのAPIドキュメント群の単語の置換により、類義語を正規化する。このように教師データ保有部56の情報を活用することで、サービス毎に異なる固有の表現の差分を吸収し、API選定の精度を高めることができる。
In the
The
次いで類似度算出部59は、API文書6やAPI仕様7の文章を単語に分解し(ステップS12)、このドキュメント特有の単語に対し重み付けを行う(ステップS13)。これにより、APIドキュメントの内容を正確に表すことができる。類似度算出部59は、単語ごとの出現数を要素に文章ベクトルを生成し(ステップS14)、ベクトルの大きさ・向きの差を類似度として扱う。
Next, the
類似度算出部59は、入力されたAPI文書6が複数のAPI群に係るものならば(ステップS15→Yes)、全体の類似度を最大化するマッチングペアを生成して第一候補に位置づけ(ステップS16)、類似度上位のAPI群を第二候補〜第N候補として(ステップS17)、マッチングペアの候補群を不図示の表示装置などに表示する(ステップS18)。類似度算出部59は、これら候補群の正誤判定結果の入力を受け付け(ステップS19)、正誤判定結果部55に格納する(ステップS23)。
If the
類似度算出部59は、入力されたAPI文書6が単一のAPIに係るものならば(ステップS15→No)、類似度上位のAPIを第一候補〜第N候補として(ステップS20)、APIの候補群を不図示の表示装置などに表示する(ステップS21)。類似度算出部59は、これら候補群の正誤判定結果の入力を受け付け(ステップS22)、正誤判定結果部55に格納する(ステップS23)。この正誤判定結果部55に格納された結果に基づき、新たな教師データを生成して類似度算出部59の算出精度を向上させることができる。
本実施形態によれば、API変換シナリオ47の新規作成工数や、API仕様の更新に伴うAPI変換シナリオ47のアップデート工数を軽減することができる。更に共通APIに準拠しない新サービスの参入が容易となる。
If the
According to the present embodiment, it is possible to reduce the man-hours for newly creating the
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a),(b)のようなものがある。
(a) 類似度算出部59の処理は、図4のフローチャートに限定されない。類似度算出部59は、例えば、共通化したいAPI_Aに係る仕様情報を予め単語に分解してもよく、業界特有用語集561によって予め正規化してもよい。
(b) 本発明は、既存サービスを利用しているネットワーク事業者システムのAPIを共通化することに限られない。上記実施形態とは逆に、既存のサービスを提供しているサービス事業者システムのAPIを共通化APIに変換し、共通化APIによるサービスを享受するネットワーク事業者システムに提供してもよい。
(Modification)
The present invention is not limited to the above-described embodiment, and can be modified without departing from the spirit of the present invention. For example, there are the following (a) and (b).
(A) The processing of the
(B) The present invention is not limited to sharing the API of the network operator system that uses the existing service. Contrary to the above embodiment, the API of a service provider system that provides an existing service may be converted to a common API and provided to a network provider system that enjoys a service using the common API.
1,1a,1b サービス事業者システム
2,2a,2b ネットワーク事業者システム
2c クラウド事業者システム
4 メディエータ
45 API変換部
47 API変換シナリオ
5 推薦装置 (類似文書推薦システム)
51 APIドキュメント入力部 (入力部)
52 APIマッチング部
53 API情報保有部 (保有部)
54 API推薦部 (推薦部)
55 正誤判定結果部
56 教師データ保有部
561 業界特有用語集
57 受付部
58 加工部
59 類似度算出部
6 API文書
7 API仕様
1, 1a, 1b
51 API document input part (input part)
52
54 API recommendation section (Recommendation section)
55 Correctness
Claims (8)
第2APIを説明する文章を有するAPI文書の入力を受け付ける入力部と、
前記API文書と前記API情報との類似度を算出する類似度算出部と、
前記類似度算出部が算出した類似度に基づき、前記第2APIに類似する一または複数の第1APIを推薦する推薦部と、
を備えることを特徴とする類似文書推薦システム。 A holding unit that holds a plurality of API information having sentences describing a plurality of first APIs;
An input unit for receiving an input of an API document having a sentence explaining the second API;
A similarity calculator that calculates the similarity between the API document and the API information;
A recommendation unit that recommends one or more first APIs similar to the second API based on the similarity calculated by the similarity calculation unit;
A similar document recommendation system comprising:
ことを特徴とする請求項1に記載の類似文書推薦システム。 The similarity calculation unit corrects a sentence included in the API document using teacher data.
The similar document recommendation system according to claim 1, wherein:
前記入力部は、前記API文書が有しているリクエストパラメータ例およびレスポンスパラメータ例を削除する、
ことを特徴とする請求項1に記載の類似文書推薦システム。 The API document has a request parameter example and / or a response parameter example,
The input unit deletes a request parameter example and a response parameter example that the API document has,
The similar document recommendation system according to claim 1, wherein:
前記入力部は、前記API文書が有している数字を含む文字列または単語を削除する、
ことを特徴とする請求項1に記載の類似文書推薦システム。 The API document has a character string or a word including a number,
The input unit deletes a character string or a word including a number that the API document has,
The similar document recommendation system according to claim 1, wherein:
前記入力部は、前記API文書が有しているキャメルケースまたはスネークケースの文字列を単語に分解する、
ことを特徴とする請求項1に記載の類似文書推薦システム。 The API document includes a camel case or snake case string,
The input unit decomposes the camel case or snake case character string of the API document into words,
The similar document recommendation system according to claim 1, wherein:
ことを特徴とする請求項1に記載の類似文書推薦システム。 The recommendation unit stores a user's correct / incorrect determination on the recommendation result of the first API.
The similar document recommendation system according to claim 1, wherein:
第2APIを説明する文章を有するAPI文書の入力を受け付けるステップと、
前記API文書と前記API情報との類似度を算出するステップと、
前記類似度に基づき、前記第2APIに類似する一または複数の第1APIを推薦するステップと、
を含むことを特徴とする類似文書推薦方法。 Holding a plurality of API information having sentences describing a plurality of first APIs;
Receiving an input of an API document having a sentence explaining the second API;
Calculating a similarity between the API document and the API information;
Recommending one or more first APIs similar to the second API based on the similarity;
A method for recommending similar documents, comprising:
第2APIを説明する文章を有するAPI文書の入力を受け付ける入力手段、
前記API文書と前記API情報との類似度を算出する類似度算出手段、
前記類似度算出手段が算出した類似度に基づき、前記第2APIに類似する一または複数の第1APIを推薦する推薦手段、
としてコンピュータを機能させるための類似文書推薦プログラム。 Holding means for holding a plurality of API information having sentences describing a plurality of first APIs;
An input means for receiving an input of an API document having a sentence explaining the second API;
Similarity calculation means for calculating the similarity between the API document and the API information;
Recommending means for recommending one or more first APIs similar to the second API based on the similarity calculated by the similarity calculating means;
Similar document recommendation program to make computer function as
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016023297A JP2017142640A (en) | 2016-02-10 | 2016-02-10 | Similar document recommendation system, similar document recommendation method, and similar document recommendation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016023297A JP2017142640A (en) | 2016-02-10 | 2016-02-10 | Similar document recommendation system, similar document recommendation method, and similar document recommendation program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017142640A true JP2017142640A (en) | 2017-08-17 |
Family
ID=59627529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016023297A Pending JP2017142640A (en) | 2016-02-10 | 2016-02-10 | Similar document recommendation system, similar document recommendation method, and similar document recommendation program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017142640A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019133621A (en) * | 2018-02-02 | 2019-08-08 | 富士通株式会社 | Collection of api documentation |
WO2022215188A1 (en) * | 2021-04-07 | 2022-10-13 | 日本電信電話株式会社 | Information processing device, information processing method, and program |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004341649A (en) * | 2003-05-13 | 2004-12-02 | Ntt Data Technology Corp | Similar document search method |
JP2011081494A (en) * | 2009-10-05 | 2011-04-21 | Tokyo Electric Power Co Inc:The | Document data analyzing device, method and program |
JP2011232855A (en) * | 2010-04-26 | 2011-11-17 | Nec Software Kyushu Ltd | Character conversion device, character conversion system, character conversion method and program |
JP2012008948A (en) * | 2010-06-28 | 2012-01-12 | Sharp Corp | Similarity derivation device and similarity derivation program |
JP2012113536A (en) * | 2010-11-25 | 2012-06-14 | Hitachi Ltd | System transition support device and support method |
JP2012208924A (en) * | 2011-03-28 | 2012-10-25 | Palo Alto Research Center Inc | Document comparison method and document comparison system based on various inter-document similarity calculation method using adaptive weighting |
-
2016
- 2016-02-10 JP JP2016023297A patent/JP2017142640A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004341649A (en) * | 2003-05-13 | 2004-12-02 | Ntt Data Technology Corp | Similar document search method |
JP2011081494A (en) * | 2009-10-05 | 2011-04-21 | Tokyo Electric Power Co Inc:The | Document data analyzing device, method and program |
JP2011232855A (en) * | 2010-04-26 | 2011-11-17 | Nec Software Kyushu Ltd | Character conversion device, character conversion system, character conversion method and program |
JP2012008948A (en) * | 2010-06-28 | 2012-01-12 | Sharp Corp | Similarity derivation device and similarity derivation program |
JP2012113536A (en) * | 2010-11-25 | 2012-06-14 | Hitachi Ltd | System transition support device and support method |
JP2012208924A (en) * | 2011-03-28 | 2012-10-25 | Palo Alto Research Center Inc | Document comparison method and document comparison system based on various inter-document similarity calculation method using adaptive weighting |
Non-Patent Citations (2)
Title |
---|
島田 隆次,他: ""開発中のソースコードに基づくソフトウェア部品の自動推薦システムA−SCORE"", 情報処理学会論文誌 論文誌ジャーナル[CD−ROM], vol. 第50巻,第12号, JPN6018048828, 15 December 2009 (2009-12-15), pages 3095 - 3107, ISSN: 0004026466 * |
高見 愛,他: ""ソフトウェア部品検索のためのAPIを利用した類似部品検出方法の提案"", 情報処理学会研究報告 2012(平成24)年度▲1▼ 研究報告 組込みシステム(EMB)[CD−RO, JPN6018048829, 15 June 2012 (2012-06-15), pages 1 - 7, ISSN: 0003937074 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019133621A (en) * | 2018-02-02 | 2019-08-08 | 富士通株式会社 | Collection of api documentation |
JP7155739B2 (en) | 2018-02-02 | 2022-10-19 | 富士通株式会社 | Collect API documentation |
WO2022215188A1 (en) * | 2021-04-07 | 2022-10-13 | 日本電信電話株式会社 | Information processing device, information processing method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491534B (en) | Information processing method and device | |
US11625620B2 (en) | Techniques for building a knowledge graph in limited knowledge domains | |
US10540624B2 (en) | System and method to automate provenance-aware application execution | |
EP3514694B1 (en) | Query translation | |
KR102220127B1 (en) | Method and apparatus for customized software development kit (sdk) generation | |
US20160140106A1 (en) | Phrase-based data classification system | |
US10678682B2 (en) | Intelligent batch job testing | |
US9098583B2 (en) | Semantic analysis driven service creation within a multi-level business process | |
CN110543297B (en) | Method and apparatus for generating source code | |
US11651015B2 (en) | Method and apparatus for presenting information | |
US11675581B1 (en) | Automated creation, testing, training, adaptation and deployment of new artificial intelligence (AI) models | |
CN111159220A (en) | Method and apparatus for outputting structured query statement | |
CN108984202B (en) | Electronic resource sharing method and device and storage medium | |
CN110837356A (en) | Data processing method and device | |
CN111125064B (en) | Method and device for generating database schema definition statement | |
CN112947912A (en) | Method and device for generating code, electronic equipment and storage medium | |
CN110692042A (en) | Platform selection to perform requested actions in an audio-based computing environment | |
CN111008213B (en) | Method and apparatus for generating language conversion model | |
JP2017142640A (en) | Similar document recommendation system, similar document recommendation method, and similar document recommendation program | |
CN111062682B (en) | Work order processing method and device | |
KR102151322B1 (en) | Information push method and device | |
CN114761944A (en) | Session broker on domain structure knowledge | |
WO2019078956A1 (en) | Systems and methods for document to order conversion | |
CN105988992A (en) | Icon pushing method and device | |
Sánchez-Rada et al. | A big linked data toolkit for social media analysis and visualization based on W3C web components |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190122 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190507 |