成语与成语接龙查询工具（Python 版）
=============================
[![pypi](https://img.shields.io/badge/pypi-0.0.2-yellow.svg)](https://pypi.org/project/china-idiom/) 
![python_vesion](https://img.shields.io/badge/python-%3E3-green.svg)  

   
用于成语接龙。

## 关于

* GitHub: <https://github.com/sfyc23/China-idiom>  
* License: MIT license  
* PyPI: <https://pypi.org/project/china-idiom/> 
* Python version: >= 3.5

## 特性

1. 用于玩转成语接龙的种种方法。


## 安装

    $ pip install china-idiom

## 升级

    $ pip install -U china-idiom
     

## 依赖库

    pandas>=0.23.4

## 使用示例

首先导入库 
```
import china_idiom as idiom
``` 

### 1. 判断一个词是否是成语。 
```
idiom.is_idiom('一心一意')
>>> True
```

### 2.  搜索成语 
功能说明：
``` 
search_idiom(word, position=0, count=1, is_detail=False)
    :param word: str,关键词
    :param position: int, 所在位置，默认为：0
    :param count: int ，返回最大数量 默认为： 1
    :param is_detail: bool,是否返回详细内容（包括：拼音，拼音缩写，解释，来源，造句）
    :return: list
```

实用式例 1：简单查询    

```
idiom.search_idiom(word='猪')
>>> ['指猪骂狗']
```
  
实用式例 2：查询成语第 2 个字是『心』的成语，最大查询数量为 2, 返回详细内容。  

```
idiom.search_idiom(word='心', position=2, count=2, is_detail=True)
>>> 
[{'word': '热心快肠',
  'pinyin': 'rè xīn kuài cháng',
  'abbreviation': 'rxkc',
  'explanation': '形容热情直爽。',
  'derivation': '柯岩《奇异的书简·东方的明珠三》也许因为是她热心快肠，群众有事爱找她拿主意，帮个忙。”',
  'example': '无'},
 {'word': '人心大快',
  'pinyin': 'rén xīn dà kuài',
  'abbreviation': 'rxdk',
  'explanation': '快痛快。指坏人坏事受到惩罚或打击，使大家非常痛快。',
  'derivation': '明·沈德符《万历野获编·立枷》东山受恩反噬，其罪盖浮于诸龙光。当时人心大快，佐以此得缙绅闻声，然亦不云立枷。”',
  'example': '无'}]
```

### 3. 成语接龙  

功能说明：  

```
def next_idioms_solitaire(word, count=1, heteronym=True, smaller=False):
    """
    :param word: str, 成语
    :param count: int, 返回数量
    :param heteronym: bool,是否可以使用同音字
    :param smaller: bool, 是否选择尽可能的少的后续
    :return: list
    """
```

式例代码 1 :  
```
idiom.next_idioms_solitaire('一生一世')
>>> ['逝将去汝']
```

式例代码 2 ：

```
idiom.next_idioms_solitaire('一生一世', count=3, heteronym=False)
>>> ['世态炎凉', '世代书香', '世上无难事']
```
代码说明：获取可接『一生一世』的成语。返回最大数量为 3。不能用于同音字。 

### 4. 判断两个成语是否能接龙。

示例代码：
  
```
idiom.is_idiom_solitaire('一生一世', '逝将去汝')
>>> True

idiom.is_idiom_solitaire('一生一世', '生生世世')
>>> False

```

### 5. 自动接龙模式。  

输入一个汉字或者成语，程序自动输出一组成语接龙的结果。  

功能说明： 

```
def auto_idioms_solitaire(word, max_count=10, heteronym=True):
    """
    自动接龙模式 - 输入一个汉字或者成语，程序自动输出一组成语接龙的结果。
    :param word: str 起始汉字或者成语。
    :param max_count: int, 最大长度。默认最大长度：20。
    :param heteronym: bool, 是否可以用同音字。默认 True。
    :return: list
    """
```

示例代码：  
```
idiom.auto_idioms_solitaire('一生一世')
>>>
["一生一世", "适心娱目", "目兔顾犬", "犬马之力", "立时三刻", "刻意经营", "蝇粪点玉", "鬻驽窃价", "驾轻就熟", "熟路轻辙"]
```

## 资源文件

* 源数据来源：https://github.com/pwxcoo/chinese-xinhua。  

    经过大量较正后，得到下一份数据：  

* [idiom.csv](https://github.com/sfyc23/China-idiom/blob/master/china_idiom/idiom.csv)


## Lincese

    MIT License
    
    Copyright (c) 2019  Thunder Bouble
    
