human
pythonで書かれた核サンプリングの実装を見せてください
gpt
Pythonによる核サンプリングの基本的な実装を以下に示す：
インポートランダム
```python
def nucleus_sampling(items, k):
    """Performs nucleus sampling.

    Selects k items from items with a probability proportional
    to their score (items need to be (item, score) tuples or objects
    with a score attribute).

    items: List of (item, score) tuples or objects with a score attribute
    k: Number of items to select

    Returns:
        List of k selected items
    """
    scores = [item[1] for item in items]
    sumscores = sum(scores)

    chosen = []
    for  in range(k):
        pick = random.uniform(0, sum_scores)
        current = 0
        for item, score in items:
            current += score
            if current > pick:
                chosen.append(item)
                sum_scores -= score
                break
    return chosen
```
例えば
items = [("a", 10), ("b", 30), ("c", 40)].
sampled = nucleus_sampling(items, 2)
print(sampled)
# "b"、"c"]を表示する。

これは、アイテムリストから2つのアイテム（k=2）をスコアに比例した確率で選択します。つまり、スコア30のアイテム（"b"）とスコア40のアイテム（"c"）は、スコア10のアイテム（"a"）よりも高い確率で選択される。