# `NPM.Package.Keywords`
[🔗](https://github.com/elixir-volt/npm_ex/blob/v0.7.4/lib/npm/package/keywords.ex#L1)

Analyzes package keywords for search and categorization.

Extracts, normalizes, and analyzes keywords from package.json
across installed packages.

# `extract`

```elixir
@spec extract(map()) :: [String.t()]
```

Extracts keywords from package.json data.

# `group_by_keyword`

```elixir
@spec group_by_keyword([{String.t(), map()}]) :: %{
  required(String.t()) =&gt; [String.t()]
}
```

Groups packages by keyword.

# `most_common`

```elixir
@spec most_common([map()], non_neg_integer()) :: [{String.t(), non_neg_integer()}]
```

Returns the most common keywords across a set of packages.

# `search`

```elixir
@spec search([{String.t(), map()}], String.t()) :: [String.t()]
```

Finds packages matching a keyword.

# `unique_count`

```elixir
@spec unique_count([map()]) :: non_neg_integer()
```

Returns unique keywords count.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
